mirror of
https://github.com/balzack/databag.git
synced 2025-04-20 00:25:16 +00:00
starting api with swagger
This commit is contained in:
parent
4432a022ad
commit
39e61a47c7
459
api.oa3
Normal file
459
api.oa3
Normal file
@ -0,0 +1,459 @@
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
description: |
|
||||
DataBag provides storage for decentralized identity based self-hosting apps.
|
||||
It is intended to support sharing of personal data and hosting group
|
||||
conversations.
|
||||
version: "0.0.1"
|
||||
title: DataBag
|
||||
termsOfService: 'http://swagger.io/terms/'
|
||||
contact:
|
||||
email: roland.osborne@gmail.com
|
||||
license:
|
||||
name: Apache 2.0
|
||||
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
|
||||
tags:
|
||||
- name: revision
|
||||
description: websocket endpoint for receiving module revision events
|
||||
- name: portal
|
||||
description: portal creation and configuration for portal backend
|
||||
- name: profile
|
||||
description: getting and setting of the public profile
|
||||
- name: content
|
||||
description: posting and listing of personal subjects, group and tag managment
|
||||
- name: contact
|
||||
description: connection to other identities, hook receiver
|
||||
- name: sharing
|
||||
description: sharing personal subjects, associates content and contacts
|
||||
- name: converstaion
|
||||
description: group sharing of subjects
|
||||
|
||||
paths:
|
||||
|
||||
/revision:
|
||||
get:
|
||||
tags:
|
||||
- revision
|
||||
summary: Websocket endpoint for receiving revision updates
|
||||
operationId: websocket
|
||||
responses:
|
||||
'200':
|
||||
description: Awaiting announce
|
||||
|
||||
/portal/configurable:
|
||||
get:
|
||||
tags:
|
||||
- portal
|
||||
summary: Check if portal params have been set
|
||||
operationId: get-config
|
||||
responses:
|
||||
'200':
|
||||
description: success
|
||||
'405':
|
||||
description: admin already configured
|
||||
'500':
|
||||
description: internal server error
|
||||
|
||||
/portal/config:
|
||||
post:
|
||||
tags:
|
||||
- portal
|
||||
summary: Set admin password and node domain
|
||||
operationId: set-config
|
||||
security:
|
||||
- basicAuth: []
|
||||
parameters:
|
||||
- name: domain
|
||||
in: query
|
||||
description: domain of node
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: success
|
||||
'405':
|
||||
description: admin already configured
|
||||
'500':
|
||||
description: internal server error
|
||||
put:
|
||||
tags:
|
||||
- portal
|
||||
summary: Set portal domain
|
||||
operationId: set-domain
|
||||
security:
|
||||
- basicAuth: []
|
||||
parameters:
|
||||
- name: domain
|
||||
in: query
|
||||
description: domain of node
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: success
|
||||
'401':
|
||||
description: authentication error
|
||||
'500':
|
||||
description: internal server error
|
||||
|
||||
/portal/claimable:
|
||||
get:
|
||||
tags:
|
||||
- portal
|
||||
description: Check if username is available
|
||||
operationId: check-username
|
||||
security:
|
||||
- bearerAuth: []
|
||||
parameters:
|
||||
- name: username
|
||||
in: query
|
||||
description: username to check
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: success
|
||||
'401':
|
||||
description: authentication error
|
||||
'405':
|
||||
description: username already taken
|
||||
'500':
|
||||
description: internal server error
|
||||
|
||||
/portal/profile:
|
||||
get:
|
||||
tags:
|
||||
- portal
|
||||
description: Get public profile object
|
||||
operationId: get-profile
|
||||
security:
|
||||
- basicAuth: []
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Profile'
|
||||
'401':
|
||||
description: authentication error
|
||||
'500':
|
||||
description: internal server error
|
||||
post:
|
||||
tags:
|
||||
- portal
|
||||
description: Add a new portal
|
||||
operationId: set-profile
|
||||
security:
|
||||
- bearerAuth: []
|
||||
- basicAuth: []
|
||||
responses:
|
||||
'201':
|
||||
description: successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Profile'
|
||||
'400':
|
||||
description: invalid handle or password
|
||||
'401':
|
||||
description: invalid bearer token
|
||||
'500':
|
||||
description: internal server error
|
||||
|
||||
/portal/profile/authenication:
|
||||
put:
|
||||
tags:
|
||||
- portal
|
||||
summary: Update authentication with extra auth header
|
||||
operationId: set-handle
|
||||
security:
|
||||
- basicAuth: []
|
||||
- basicAuth: []
|
||||
responses:
|
||||
'200':
|
||||
description: authentication set
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Profile'
|
||||
'400':
|
||||
description: invalid new handle or password
|
||||
'401':
|
||||
description: invalid handle or password
|
||||
'500':
|
||||
description: internal server error
|
||||
|
||||
/portal/profile/passcode:
|
||||
put:
|
||||
tags:
|
||||
- portal
|
||||
summary: Generate pass code
|
||||
operationId: set-passcode
|
||||
security:
|
||||
- basicAuth: []
|
||||
responses:
|
||||
'201':
|
||||
description: generated
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: string
|
||||
'401':
|
||||
description: invalid password
|
||||
'500':
|
||||
description: internal server error
|
||||
|
||||
/portal/token:
|
||||
get:
|
||||
tags:
|
||||
- portal
|
||||
summary: Check if bearer token is valid
|
||||
operationId: check-token
|
||||
security:
|
||||
- bearerAuth: []
|
||||
responses:
|
||||
'200':
|
||||
description: success
|
||||
'401':
|
||||
description: invalid token
|
||||
'500':
|
||||
description: internal server error
|
||||
put:
|
||||
tags:
|
||||
- portal
|
||||
summary: Create password reset token
|
||||
operationId: set-account
|
||||
security:
|
||||
- basicAuth: []
|
||||
parameters:
|
||||
- name: guid
|
||||
in: query
|
||||
description: id of profile to access
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'201':
|
||||
description: generated
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: string
|
||||
'401':
|
||||
description: invalid password
|
||||
'404':
|
||||
description: unknown portal
|
||||
'500':
|
||||
description: internal server error
|
||||
post:
|
||||
tags:
|
||||
- portal
|
||||
summary: Create new portal token
|
||||
operationId: add-account
|
||||
security:
|
||||
- basicAuth: []
|
||||
responses:
|
||||
'201':
|
||||
description: generated
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: string
|
||||
'401':
|
||||
description: invalid password
|
||||
'500':
|
||||
description: internal server error
|
||||
|
||||
/portal/accounts:
|
||||
get:
|
||||
tags:
|
||||
- portal
|
||||
description: Get list of portals
|
||||
operationId: get-accounts
|
||||
security:
|
||||
- basicAuth: []
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
'401':
|
||||
description: invalid password
|
||||
'404':
|
||||
description: handle not found
|
||||
'500':
|
||||
description: internal server error
|
||||
|
||||
/portal/accounts/{guid}:
|
||||
get:
|
||||
tags:
|
||||
- portal
|
||||
description: Get profile of account
|
||||
operationId: get-account
|
||||
security:
|
||||
- basicAuth: []
|
||||
parameters:
|
||||
- name: guid
|
||||
in: path
|
||||
description: id of account to access
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Profile'
|
||||
'401':
|
||||
description: invalid password
|
||||
'404':
|
||||
description: account not found
|
||||
'500':
|
||||
description: internal server error
|
||||
delete:
|
||||
tags:
|
||||
- portal
|
||||
description: Remove account from node
|
||||
operationId: remove-account
|
||||
security:
|
||||
- basicAuth: []
|
||||
parameters:
|
||||
- name: guid
|
||||
in: path
|
||||
description: id of account to delete
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
'401':
|
||||
description: invalid authentication
|
||||
'404':
|
||||
description: account not found
|
||||
'500':
|
||||
description: internal server error
|
||||
|
||||
/sample:
|
||||
put:
|
||||
tags:
|
||||
- sample
|
||||
summary: sample
|
||||
operationId: sample
|
||||
responses:
|
||||
'400':
|
||||
description: sample
|
||||
requestBody:
|
||||
$ref: '#/components/requestBodies/Sample'
|
||||
|
||||
externalDocs:
|
||||
description: Find out more about Swagger
|
||||
url: 'http://swagger.io'
|
||||
|
||||
components:
|
||||
schemas:
|
||||
|
||||
Announce:
|
||||
type: object
|
||||
required:
|
||||
- appToken
|
||||
properties:
|
||||
appToken:
|
||||
type: string
|
||||
|
||||
Passcode:
|
||||
type: object
|
||||
required:
|
||||
- value
|
||||
properties:
|
||||
value:
|
||||
type: string
|
||||
|
||||
Revsion:
|
||||
type: object
|
||||
required:
|
||||
- profile
|
||||
- content
|
||||
- labels
|
||||
- sharing
|
||||
- contact
|
||||
- dialogue
|
||||
- insight
|
||||
properties:
|
||||
profile:
|
||||
type: integer
|
||||
format: int64
|
||||
content:
|
||||
type: integer
|
||||
format: int64
|
||||
labels:
|
||||
type: integer
|
||||
format: int64
|
||||
sharing:
|
||||
type: integer
|
||||
format: int64
|
||||
contact:
|
||||
type: integer
|
||||
format: int64
|
||||
dialogue:
|
||||
type: integer
|
||||
format: int64
|
||||
insight:
|
||||
type: integer
|
||||
format: int64
|
||||
|
||||
Profile:
|
||||
type: object
|
||||
required:
|
||||
- guid
|
||||
- handle
|
||||
- name
|
||||
- description
|
||||
- location
|
||||
- revision
|
||||
- node
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
description:
|
||||
type: string
|
||||
location:
|
||||
type: string
|
||||
revision:
|
||||
type: integer
|
||||
format: int64
|
||||
node:
|
||||
type: string
|
||||
|
||||
requestBodies:
|
||||
|
||||
Sample:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Pet'
|
||||
description: Sample
|
||||
required: true
|
||||
|
||||
securitySchemes:
|
||||
|
||||
basicAuth:
|
||||
type: http
|
||||
scheme: basic
|
||||
|
||||
bearerAuth:
|
||||
type: http
|
||||
scheme: bearer
|
||||
|
Loading…
x
Reference in New Issue
Block a user