databag/api.oa3

460 lines
11 KiB
Plaintext
Raw Normal View History

2021-12-20 21:49:59 +00:00
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