mirror of
https://github.com/balzack/databag.git
synced 2025-02-12 03:29:16 +00:00
1598 lines
39 KiB
Plaintext
1598 lines
39 KiB
Plaintext
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: admin
|
|
description: account creation for portal backend.
|
|
- name: account
|
|
description: account configuration for portal backend. supports app attachment
|
|
- name: authenticate
|
|
description: authenticate holder of identity for external service
|
|
- name: profile
|
|
description: getting and setting of the public profile
|
|
- name: share
|
|
description: access control for personal subjects, associates content and contacts
|
|
|
|
- name: contact
|
|
description: connection to other identities, hook receiver
|
|
- name: content
|
|
description: posting and listing of personal subjects, group and tag managment
|
|
- name: converstaion
|
|
description: group sharing of subjects
|
|
|
|
paths:
|
|
|
|
/revision:
|
|
get:
|
|
tags:
|
|
- revision
|
|
description: Websocket placeholder endpoint for receiving revision updates
|
|
operationId: websocket
|
|
responses:
|
|
'200':
|
|
description: Awaiting announce
|
|
|
|
/revision/profile:
|
|
put:
|
|
tags:
|
|
- revision
|
|
description: Hook receiver for contact profile revision updates
|
|
operationId: revision-profile-hook
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: revision set
|
|
'401':
|
|
description: not authorized
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
/revision/content:
|
|
put:
|
|
tags:
|
|
- revision
|
|
description: Hook receiver for contact content revision updates
|
|
operationId: revision-content-hook
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: revision set
|
|
'401':
|
|
description: not authorized
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
/revision/insight/{insightId}:
|
|
put:
|
|
tags:
|
|
- revision
|
|
description: Hook receiver for contact insight revision updates
|
|
operationId: revision-insight-hook
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: insightId
|
|
in: path
|
|
description: insight id to update
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: revision set
|
|
'401':
|
|
description: not authorized
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
|
|
/admin/claimable:
|
|
get:
|
|
tags:
|
|
- admin
|
|
description: Check if portal params have been set
|
|
operationId: node-configurable
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'405':
|
|
description: admin already configured
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/config:
|
|
post:
|
|
tags:
|
|
- admin
|
|
description: Set admin password and node domain
|
|
operationId: add-node-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
|
|
|
|
/admin/config/domain:
|
|
put:
|
|
tags:
|
|
- admin
|
|
description: Set portal domain
|
|
operationId: set-node-config-domain
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: authentication error
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/admin/token:
|
|
put:
|
|
tags:
|
|
- admin
|
|
description: Create password reset token url
|
|
operationId: set-node-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:
|
|
- admin
|
|
description: Create new account token url
|
|
operationId: add-node-account
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/accounts:
|
|
get:
|
|
tags:
|
|
- admin
|
|
description: Get list of portals
|
|
operationId: get-node-accounts
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Profile'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: handle not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/admin/accounts/{guid}:
|
|
delete:
|
|
tags:
|
|
- admin
|
|
description: Remove account from node
|
|
operationId: remove-node-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
|
|
|
|
/admin/accounts/{guid}/image:
|
|
get:
|
|
tags:
|
|
- admin
|
|
description: Get profile of specified account
|
|
operationId: get-node-account-image
|
|
security:
|
|
- basicAuth: []
|
|
parameters:
|
|
- name: guid
|
|
in: path
|
|
description: id of specified account
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: account not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/claimable:
|
|
get:
|
|
tags:
|
|
- account
|
|
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
|
|
|
|
/account/token:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Check if bearer token is valid
|
|
operationId: check-token
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: success
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/profile:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Get public profile object
|
|
operationId: get-account-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:
|
|
- account
|
|
description: Add a new account
|
|
operationId: add-account
|
|
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
|
|
|
|
/account/authentication:
|
|
post:
|
|
tags:
|
|
- account
|
|
description: Generate token to reset authentication
|
|
operationId: add-account-authentication
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Apply account reset token to set handle and password
|
|
operationId: set-account-authentication
|
|
security:
|
|
- bearerAuth: []
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid token
|
|
'406':
|
|
description: invalid handle or password
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/attachment:
|
|
post:
|
|
tags:
|
|
- account
|
|
description: Generate token to attach an app to the account
|
|
operationId: add-account-app
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- account
|
|
description: Apply the app token and attach an app to the account
|
|
operationId: set-account-app
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: invalid token
|
|
'406':
|
|
description: app limit reached
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AppData'
|
|
|
|
/account/apps:
|
|
get:
|
|
tags:
|
|
- account
|
|
description: Get list of attached apps
|
|
operationId: get-account-apps
|
|
security:
|
|
- basicAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/App'
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
|
|
/account/apps/{appId}:
|
|
delete:
|
|
tags:
|
|
- account
|
|
description: Get list of attached apps
|
|
operationId: remove-account-app
|
|
security:
|
|
- basicAuth: []
|
|
parameters:
|
|
- name: appId
|
|
in: path
|
|
description: specified app id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: app not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/authenticate:
|
|
put:
|
|
tags:
|
|
- authenticate
|
|
description: Sign payload containing external token for authentication
|
|
operationId: authenticate
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: token
|
|
in: query
|
|
description: token to sign in message response
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: generated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
|
|
/profile:
|
|
get:
|
|
tags:
|
|
- profile
|
|
description: Get profile view object
|
|
operationId: get-profile
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- profile
|
|
description: Set profile data
|
|
operationId: set-profile
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ProfileData'
|
|
|
|
/profile/image:
|
|
get:
|
|
tags:
|
|
- profile
|
|
description: Get profile image
|
|
operationId: get-profile-image
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
|
|
/profile/message:
|
|
get:
|
|
tags:
|
|
- profile
|
|
description: Get profile message
|
|
operationId: get-profile-message
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
|
|
|
|
/share/groups:
|
|
get:
|
|
tags:
|
|
- share
|
|
description: Get groups for sharing
|
|
operationId: get-share-groups
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Group'
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
post:
|
|
tags:
|
|
- share
|
|
description: Add a group for sharing
|
|
operationId: add-share-group
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'201':
|
|
description: entry created
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/share/groups/{groupId}:
|
|
delete:
|
|
tags:
|
|
- share
|
|
description: Get groups for sharing
|
|
operationId: remove-share-group
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- share
|
|
description: Update group for sharing
|
|
operationId: update-share-group
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: groupId
|
|
in: path
|
|
description: specified group id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid token
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
|
|
/index/contacts:
|
|
post:
|
|
tags:
|
|
- index
|
|
description: Add contact entry
|
|
operationId: add-index-contact
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Contact'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/index/contacts/view:
|
|
get:
|
|
tags:
|
|
- index
|
|
description: Get list of contacts
|
|
operationId: get-index-contacts
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ContactView'
|
|
'401':
|
|
description: invalid password
|
|
'500':
|
|
description: internal server error
|
|
|
|
/index/contacts/{contactId}:
|
|
get:
|
|
tags:
|
|
- index
|
|
description: Get contact entry
|
|
operationId: get-index-contact
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Contact'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- index
|
|
description: Remove contact entry
|
|
operationId: remove-index-contact
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/index/contacts/{contactId}/status:
|
|
put:
|
|
tags:
|
|
- index
|
|
description: Update contact status
|
|
operationId: set-index-contact-status
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: token
|
|
in: query
|
|
description: token for accessing contact
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
enum: [ pending, confirmed, connecting, connected ]
|
|
|
|
/index/contacts/{contactId}/openMessage:
|
|
get:
|
|
tags:
|
|
- index
|
|
description: Get message for opening contact connection
|
|
operationId: get-index-open-message
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- index
|
|
description: Set message for opening contact connection
|
|
operationId: set-index-open-message
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactStatus'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
|
|
/index/contacts/{contactId}/closeMessage:
|
|
get:
|
|
tags:
|
|
- index
|
|
description: Get message for closing contact connection
|
|
operationId: get-index-close-message
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- index
|
|
description: Set message for closing contact connection
|
|
operationId: set-index-close-message
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactStatus'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DataMessage'
|
|
|
|
/index/contacts/{contactId}/profile:
|
|
get:
|
|
tags:
|
|
- index
|
|
description: Get profile of contact entry
|
|
operationId: get-index-profile
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactProfile'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
put:
|
|
tags:
|
|
- index
|
|
description: Set profile of contact entry
|
|
operationId: set-index-profile
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactProfile'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Profile'
|
|
|
|
/index/contacts/{contactId}/data:
|
|
get:
|
|
tags:
|
|
- index
|
|
description: Get data of contact entry
|
|
operationId: get-index-data
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/index/contacts/{contactId}/notes:
|
|
put:
|
|
tags:
|
|
- index
|
|
description: Update contact notes
|
|
operationId: set-index-contact-notes
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
delete:
|
|
tags:
|
|
- index
|
|
description: Clear contact notes
|
|
operationId: clear-index-contact-notes
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/index/contacts/{contactId}/{shareId}:
|
|
put:
|
|
tags:
|
|
- index
|
|
description: Update contact notes
|
|
operationId: set-index-contact-share
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: shareId
|
|
in: path
|
|
description: specified share id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- index
|
|
description: Clear contact share group
|
|
operationId: clear-index-contact-share
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: shareId
|
|
in: path
|
|
description: specified share id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ContactData'
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/index/blocked:
|
|
get:
|
|
tags:
|
|
- index
|
|
description: Get list of blocked contacts
|
|
operationId: get-index-blocked-contacts
|
|
security:
|
|
- bearerAuth: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
/index/blocked/{contactId}:
|
|
post:
|
|
tags:
|
|
- index
|
|
description: Add contact from blocked list
|
|
operationId: add-index-blocked-contact
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
delete:
|
|
tags:
|
|
- index
|
|
description: Remove contact from blocked list
|
|
operationId: remove-index-blocked-contact
|
|
security:
|
|
- bearerAuth: []
|
|
parameters:
|
|
- name: contactId
|
|
in: path
|
|
description: specified contact id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
'401':
|
|
description: invalid password
|
|
'404':
|
|
description: not found
|
|
'500':
|
|
description: internal server error
|
|
|
|
|
|
|
|
## Content Module
|
|
## structure types: article, subject, label, tag, articleBlock, tagBlock
|
|
# get article block view [ { articleBlockId, articleBlockRevision } ]
|
|
# get article block (blockId, subjectFilter, tagFilter): [ { articleId, articleRevision, set, ready, subject: {
|
|
# subjectId, revision, type, data, created, modified
|
|
# }, labelId[], shareId[], tagCount, tagModified
|
|
# } ]
|
|
# get article view (blockId, subjectFilter): [ { articleId, articleRevision } ]
|
|
# get article (articleId, tagFilter) : { articleId, articleRevision, set, ready, subject: {
|
|
# subjectId, revision, type, data, created, modified
|
|
# }, labelId[], shareId[], tagCount, tagModified
|
|
# }
|
|
# get tag view (articleId, filter): [ { tagId, revision } ]
|
|
# get tag block (articleId, filter): [ { tagId, revision, type, data, created, modified } ]
|
|
# get tag (tagId): { tagId, revision, type, data, created, modified }
|
|
# get labels (filter): [ { labelId, revision, type, data, created, modified } ]
|
|
# get subject asset
|
|
# add subject
|
|
# add subject asset
|
|
# update subject data
|
|
# set/clear ready
|
|
# set/clear share
|
|
|
|
externalDocs:
|
|
description: Find out more about Swagger
|
|
url: 'http://swagger.io'
|
|
|
|
components:
|
|
schemas:
|
|
|
|
Announce:
|
|
type: object
|
|
required:
|
|
- appToken
|
|
properties:
|
|
appToken:
|
|
type: string
|
|
|
|
Revsion:
|
|
type: object
|
|
required:
|
|
- profile
|
|
- content
|
|
- labels
|
|
- sharing
|
|
- contact
|
|
- blocked
|
|
- 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
|
|
- revision
|
|
- node
|
|
properties:
|
|
guid:
|
|
type: string
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
image:
|
|
type: string
|
|
format: base64 encoded data
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
node:
|
|
type: string
|
|
|
|
ProfileData:
|
|
type: object
|
|
properties:
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
image:
|
|
type: string
|
|
|
|
App:
|
|
type: object
|
|
required:
|
|
- appId
|
|
- appData
|
|
- attached
|
|
properties:
|
|
appId:
|
|
type: string
|
|
appData:
|
|
$ref: '#/components/schemas/AppData'
|
|
attached:
|
|
type: integer
|
|
format: int32
|
|
|
|
AppData:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
url:
|
|
type: string
|
|
image:
|
|
type: string
|
|
format: base64 encoded image
|
|
|
|
ContactView:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- profileRevision
|
|
- contentRevision
|
|
- contactRevision
|
|
properties:
|
|
guid:
|
|
type: string
|
|
contactRevision:
|
|
type: integer
|
|
format: int64
|
|
profileRevision:
|
|
type: integer
|
|
format: int64
|
|
contentRevision:
|
|
type: integer
|
|
format: int64
|
|
converstaionRevision:
|
|
type: integer
|
|
format: int64
|
|
|
|
ContactProfile:
|
|
type: object
|
|
required:
|
|
- node
|
|
properties:
|
|
handle:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
location:
|
|
type: string
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
imageSet:
|
|
type: boolean
|
|
node:
|
|
type: string
|
|
|
|
ContactData:
|
|
type: object
|
|
required:
|
|
- status
|
|
properties:
|
|
revision:
|
|
type: integer
|
|
format: int64
|
|
status:
|
|
type: string
|
|
enum: [ pending, confirmed, connecting, connected ]
|
|
notes:
|
|
type: string
|
|
token:
|
|
type: string
|
|
groups:
|
|
type: array
|
|
items:
|
|
type: string
|
|
|
|
ContactStatus:
|
|
type: object
|
|
required:
|
|
- status
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum: [ pending, confirmed, connecting, connected ]
|
|
token:
|
|
type: string
|
|
|
|
Contact:
|
|
type: object
|
|
required:
|
|
- contactProfile
|
|
- contactData
|
|
- contentRevision
|
|
- conversationRevision
|
|
properties:
|
|
contactProfile:
|
|
$ref: '#/components/schemas/ContactProfile'
|
|
contactData:
|
|
$ref: '#/components/schemas/ContactData'
|
|
contentRevision:
|
|
type: integer
|
|
format: int64
|
|
converstaionRevision:
|
|
type: integer
|
|
format: int64
|
|
|
|
Group:
|
|
type: object
|
|
required:
|
|
- groupId
|
|
- name
|
|
properties:
|
|
groupId:
|
|
type: string
|
|
name:
|
|
type: string
|
|
|
|
Authenticate:
|
|
type: object
|
|
required:
|
|
- guid
|
|
- token
|
|
- timestamp
|
|
properties:
|
|
token:
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
format: int32
|
|
|
|
Connect:
|
|
type: object
|
|
required:
|
|
- requestorId
|
|
- requestedId
|
|
- timestamp
|
|
- profile
|
|
- token
|
|
- contentRevision
|
|
- conversationRevision
|
|
properties:
|
|
requestorId:
|
|
type: string
|
|
requestedId:
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
format: int32
|
|
profile:
|
|
$ref: '#/components/schemas/Profile'
|
|
token:
|
|
type: string
|
|
contentRevision:
|
|
type: integer
|
|
format: int64
|
|
conversationRevision:
|
|
type: integer
|
|
format: int64
|
|
|
|
Disconnect:
|
|
type: object
|
|
required:
|
|
- requestorId
|
|
- requestedId
|
|
- timestamp
|
|
properties:
|
|
requestorId:
|
|
type: string
|
|
requestedId:
|
|
type: string
|
|
timestamp:
|
|
type: integer
|
|
format: int32
|
|
|
|
DataMessage:
|
|
type: object
|
|
required:
|
|
- message
|
|
- messageType
|
|
- keyType
|
|
- publicKey
|
|
- signature
|
|
properties:
|
|
messageType:
|
|
type: string
|
|
enum: [Connect, Disconnect, Profile, Authenticate]
|
|
message:
|
|
type: string
|
|
format: base64 encoded object
|
|
keyType:
|
|
type: string
|
|
enum: [RSA4096, RSA2048]
|
|
publicKey:
|
|
type: string
|
|
format: base64 encoding of account key
|
|
signature:
|
|
type: string
|
|
format: base64 encoding of message signature
|
|
|
|
|
|
securitySchemes:
|
|
|
|
basicAuth:
|
|
type: http
|
|
scheme: basic
|
|
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
|