mirror of
https://github.com/usememos/memos.git
synced 2024-12-23 19:21:57 +03:00
2176 lines
56 KiB
YAML
2176 lines
56 KiB
YAML
basePath: /
|
|
definitions:
|
|
getter.HTMLMeta:
|
|
properties:
|
|
description:
|
|
type: string
|
|
image:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type: object
|
|
github_com_usememos_memos_store.UserSetting:
|
|
properties:
|
|
key:
|
|
type: string
|
|
userID:
|
|
type: integer
|
|
value:
|
|
type: string
|
|
type: object
|
|
profile.Profile:
|
|
properties:
|
|
mode:
|
|
description: Mode can be "prod" or "dev" or "demo"
|
|
type: string
|
|
version:
|
|
description: Version is the current version of server
|
|
type: string
|
|
type: object
|
|
store.FieldMapping:
|
|
properties:
|
|
displayName:
|
|
type: string
|
|
email:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
type: object
|
|
store.IdentityProvider:
|
|
properties:
|
|
config:
|
|
$ref: '#/definitions/store.IdentityProviderConfig'
|
|
id:
|
|
type: integer
|
|
identifierFilter:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/store.IdentityProviderType'
|
|
type: object
|
|
store.IdentityProviderConfig:
|
|
properties:
|
|
oauth2Config:
|
|
$ref: '#/definitions/store.IdentityProviderOAuth2Config'
|
|
type: object
|
|
store.IdentityProviderOAuth2Config:
|
|
properties:
|
|
authUrl:
|
|
type: string
|
|
clientId:
|
|
type: string
|
|
clientSecret:
|
|
type: string
|
|
fieldMapping:
|
|
$ref: '#/definitions/store.FieldMapping'
|
|
scopes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
tokenUrl:
|
|
type: string
|
|
userInfoUrl:
|
|
type: string
|
|
type: object
|
|
store.IdentityProviderType:
|
|
enum:
|
|
- OAUTH2
|
|
type: string
|
|
x-enum-varnames:
|
|
- IdentityProviderOAuth2Type
|
|
store.Memo:
|
|
properties:
|
|
content:
|
|
description: Domain specific fields
|
|
type: string
|
|
createdTs:
|
|
type: integer
|
|
creatorID:
|
|
type: integer
|
|
id:
|
|
type: integer
|
|
pinned:
|
|
description: Composed fields
|
|
type: boolean
|
|
relationList:
|
|
items:
|
|
$ref: '#/definitions/store.MemoRelation'
|
|
type: array
|
|
resourceIDList:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
rowStatus:
|
|
allOf:
|
|
- $ref: '#/definitions/store.RowStatus'
|
|
description: Standard fields
|
|
updatedTs:
|
|
type: integer
|
|
visibility:
|
|
$ref: '#/definitions/store.Visibility'
|
|
type: object
|
|
store.MemoRelation:
|
|
properties:
|
|
memoID:
|
|
type: integer
|
|
relatedMemoID:
|
|
type: integer
|
|
type:
|
|
$ref: '#/definitions/store.MemoRelationType'
|
|
type: object
|
|
store.MemoRelationType:
|
|
enum:
|
|
- REFERENCE
|
|
- ADDITIONAL
|
|
type: string
|
|
x-enum-varnames:
|
|
- MemoRelationReference
|
|
- MemoRelationAdditional
|
|
store.Resource:
|
|
properties:
|
|
blob:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
createdTs:
|
|
type: integer
|
|
creatorID:
|
|
description: Standard fields
|
|
type: integer
|
|
externalLink:
|
|
type: string
|
|
filename:
|
|
description: Domain specific fields
|
|
type: string
|
|
id:
|
|
type: integer
|
|
internalPath:
|
|
type: string
|
|
linkedMemoAmount:
|
|
type: integer
|
|
size:
|
|
type: integer
|
|
type:
|
|
type: string
|
|
updatedTs:
|
|
type: integer
|
|
type: object
|
|
store.Role:
|
|
enum:
|
|
- HOST
|
|
- ADMIN
|
|
- USER
|
|
type: string
|
|
x-enum-varnames:
|
|
- RoleHost
|
|
- RoleAdmin
|
|
- RoleUser
|
|
store.RowStatus:
|
|
enum:
|
|
- NORMAL
|
|
- ARCHIVED
|
|
type: string
|
|
x-enum-varnames:
|
|
- Normal
|
|
- Archived
|
|
store.Storage:
|
|
properties:
|
|
config:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
type: object
|
|
store.SystemSetting:
|
|
properties:
|
|
description:
|
|
type: string
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
type: object
|
|
store.User:
|
|
properties:
|
|
avatarURL:
|
|
type: string
|
|
createdTs:
|
|
type: integer
|
|
email:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
nickname:
|
|
type: string
|
|
passwordHash:
|
|
type: string
|
|
role:
|
|
$ref: '#/definitions/store.Role'
|
|
rowStatus:
|
|
allOf:
|
|
- $ref: '#/definitions/store.RowStatus'
|
|
description: Standard fields
|
|
updatedTs:
|
|
type: integer
|
|
username:
|
|
description: Domain specific fields
|
|
type: string
|
|
type: object
|
|
store.Visibility:
|
|
enum:
|
|
- PUBLIC
|
|
- PROTECTED
|
|
- PRIVATE
|
|
type: string
|
|
x-enum-varnames:
|
|
- Public
|
|
- Protected
|
|
- Private
|
|
v1.CreateIdentityProviderRequest:
|
|
properties:
|
|
config:
|
|
$ref: '#/definitions/v1.IdentityProviderConfig'
|
|
identifierFilter:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/v1.IdentityProviderType'
|
|
type: object
|
|
v1.CreateMemoRequest:
|
|
properties:
|
|
content:
|
|
type: string
|
|
createdTs:
|
|
type: integer
|
|
relationList:
|
|
items:
|
|
$ref: '#/definitions/v1.UpsertMemoRelationRequest'
|
|
type: array
|
|
resourceIdList:
|
|
description: Related fields
|
|
items:
|
|
type: integer
|
|
type: array
|
|
visibility:
|
|
allOf:
|
|
- $ref: '#/definitions/v1.Visibility'
|
|
description: Domain specific fields
|
|
type: object
|
|
v1.CreateResourceRequest:
|
|
properties:
|
|
externalLink:
|
|
type: string
|
|
filename:
|
|
type: string
|
|
internalPath:
|
|
type: string
|
|
type:
|
|
type: string
|
|
type: object
|
|
v1.CreateStorageRequest:
|
|
properties:
|
|
config:
|
|
$ref: '#/definitions/v1.StorageConfig'
|
|
name:
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/v1.StorageType'
|
|
type: object
|
|
v1.CreateUserRequest:
|
|
properties:
|
|
email:
|
|
type: string
|
|
nickname:
|
|
type: string
|
|
password:
|
|
type: string
|
|
role:
|
|
$ref: '#/definitions/v1.Role'
|
|
username:
|
|
type: string
|
|
type: object
|
|
v1.CustomizedProfile:
|
|
properties:
|
|
appearance:
|
|
description: Appearance is the server default appearance.
|
|
type: string
|
|
description:
|
|
description: Description is the server description.
|
|
type: string
|
|
externalUrl:
|
|
description: ExternalURL is the external url of server. e.g. https://usermemos.com
|
|
type: string
|
|
locale:
|
|
description: Locale is the server default locale.
|
|
type: string
|
|
logoUrl:
|
|
description: LogoURL is the url of logo image.
|
|
type: string
|
|
name:
|
|
description: Name is the server name, default is `memos`
|
|
type: string
|
|
type: object
|
|
v1.DeleteTagRequest:
|
|
properties:
|
|
name:
|
|
type: string
|
|
type: object
|
|
v1.FieldMapping:
|
|
properties:
|
|
displayName:
|
|
type: string
|
|
email:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
type: object
|
|
v1.IdentityProvider:
|
|
properties:
|
|
config:
|
|
$ref: '#/definitions/v1.IdentityProviderConfig'
|
|
id:
|
|
type: integer
|
|
identifierFilter:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/v1.IdentityProviderType'
|
|
type: object
|
|
v1.IdentityProviderConfig:
|
|
properties:
|
|
oauth2Config:
|
|
$ref: '#/definitions/v1.IdentityProviderOAuth2Config'
|
|
type: object
|
|
v1.IdentityProviderOAuth2Config:
|
|
properties:
|
|
authUrl:
|
|
type: string
|
|
clientId:
|
|
type: string
|
|
clientSecret:
|
|
type: string
|
|
fieldMapping:
|
|
$ref: '#/definitions/v1.FieldMapping'
|
|
scopes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
tokenUrl:
|
|
type: string
|
|
userInfoUrl:
|
|
type: string
|
|
type: object
|
|
v1.IdentityProviderType:
|
|
enum:
|
|
- OAUTH2
|
|
type: string
|
|
x-enum-varnames:
|
|
- IdentityProviderOAuth2Type
|
|
v1.MemoRelationType:
|
|
enum:
|
|
- REFERENCE
|
|
- ADDITIONAL
|
|
type: string
|
|
x-enum-varnames:
|
|
- MemoRelationReference
|
|
- MemoRelationAdditional
|
|
v1.PatchMemoRequest:
|
|
properties:
|
|
content:
|
|
description: Domain specific fields
|
|
type: string
|
|
createdTs:
|
|
description: Standard fields
|
|
type: integer
|
|
relationList:
|
|
items:
|
|
$ref: '#/definitions/v1.UpsertMemoRelationRequest'
|
|
type: array
|
|
resourceIdList:
|
|
description: Related fields
|
|
items:
|
|
type: integer
|
|
type: array
|
|
rowStatus:
|
|
$ref: '#/definitions/v1.RowStatus'
|
|
updatedTs:
|
|
type: integer
|
|
visibility:
|
|
$ref: '#/definitions/v1.Visibility'
|
|
type: object
|
|
v1.Resource:
|
|
properties:
|
|
createdTs:
|
|
type: integer
|
|
creatorId:
|
|
description: Standard fields
|
|
type: integer
|
|
externalLink:
|
|
type: string
|
|
filename:
|
|
description: Domain specific fields
|
|
type: string
|
|
id:
|
|
type: integer
|
|
linkedMemoAmount:
|
|
description: Related fields
|
|
type: integer
|
|
size:
|
|
type: integer
|
|
type:
|
|
type: string
|
|
updatedTs:
|
|
type: integer
|
|
type: object
|
|
v1.Role:
|
|
enum:
|
|
- HOST
|
|
- ADMIN
|
|
- USER
|
|
type: string
|
|
x-enum-varnames:
|
|
- RoleHost
|
|
- RoleAdmin
|
|
- RoleUser
|
|
v1.RowStatus:
|
|
enum:
|
|
- NORMAL
|
|
- ARCHIVED
|
|
type: string
|
|
x-enum-varnames:
|
|
- Normal
|
|
- Archived
|
|
v1.SSOSignIn:
|
|
properties:
|
|
code:
|
|
type: string
|
|
identityProviderId:
|
|
type: integer
|
|
redirectUri:
|
|
type: string
|
|
type: object
|
|
v1.SignIn:
|
|
properties:
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
v1.SignUp:
|
|
properties:
|
|
password:
|
|
type: string
|
|
username:
|
|
type: string
|
|
type: object
|
|
v1.StorageConfig:
|
|
properties:
|
|
s3Config:
|
|
$ref: '#/definitions/v1.StorageS3Config'
|
|
type: object
|
|
v1.StorageS3Config:
|
|
properties:
|
|
accessKey:
|
|
type: string
|
|
bucket:
|
|
type: string
|
|
endPoint:
|
|
type: string
|
|
path:
|
|
type: string
|
|
region:
|
|
type: string
|
|
secretKey:
|
|
type: string
|
|
urlPrefix:
|
|
type: string
|
|
urlSuffix:
|
|
type: string
|
|
type: object
|
|
v1.StorageType:
|
|
enum:
|
|
- S3
|
|
type: string
|
|
x-enum-varnames:
|
|
- StorageS3
|
|
v1.SystemSetting:
|
|
properties:
|
|
description:
|
|
type: string
|
|
name:
|
|
$ref: '#/definitions/v1.SystemSettingName'
|
|
value:
|
|
description: Value is a JSON string with basic value.
|
|
type: string
|
|
type: object
|
|
v1.SystemSettingName:
|
|
enum:
|
|
- server-id
|
|
- secret-session
|
|
- allow-signup
|
|
- disable-password-login
|
|
- disable-public-memos
|
|
- max-upload-size-mib
|
|
- additional-style
|
|
- additional-script
|
|
- customized-profile
|
|
- storage-service-id
|
|
- local-storage-path
|
|
- telegram-bot-token
|
|
- memo-display-with-updated-ts
|
|
- auto-backup-interval
|
|
type: string
|
|
x-enum-varnames:
|
|
- SystemSettingServerIDName
|
|
- SystemSettingSecretSessionName
|
|
- SystemSettingAllowSignUpName
|
|
- SystemSettingDisablePasswordLoginName
|
|
- SystemSettingDisablePublicMemosName
|
|
- SystemSettingMaxUploadSizeMiBName
|
|
- SystemSettingAdditionalStyleName
|
|
- SystemSettingAdditionalScriptName
|
|
- SystemSettingCustomizedProfileName
|
|
- SystemSettingStorageServiceIDName
|
|
- SystemSettingLocalStoragePathName
|
|
- SystemSettingTelegramBotTokenName
|
|
- SystemSettingMemoDisplayWithUpdatedTsName
|
|
- SystemSettingAutoBackupIntervalName
|
|
v1.SystemStatus:
|
|
properties:
|
|
additionalScript:
|
|
description: Additional script.
|
|
type: string
|
|
additionalStyle:
|
|
description: Additional style.
|
|
type: string
|
|
allowSignUp:
|
|
description: |-
|
|
System settings
|
|
Allow sign up.
|
|
type: boolean
|
|
autoBackupInterval:
|
|
description: Auto Backup Interval.
|
|
type: integer
|
|
customizedProfile:
|
|
allOf:
|
|
- $ref: '#/definitions/v1.CustomizedProfile'
|
|
description: Customized server profile, including server name and external
|
|
url.
|
|
dbSize:
|
|
type: integer
|
|
disablePasswordLogin:
|
|
description: Disable password login.
|
|
type: boolean
|
|
disablePublicMemos:
|
|
description: Disable public memos.
|
|
type: boolean
|
|
host:
|
|
$ref: '#/definitions/v1.User'
|
|
localStoragePath:
|
|
description: Local storage path.
|
|
type: string
|
|
maxUploadSizeMiB:
|
|
description: Max upload size.
|
|
type: integer
|
|
memoDisplayWithUpdatedTs:
|
|
description: Memo display with updated timestamp.
|
|
type: boolean
|
|
profile:
|
|
$ref: '#/definitions/profile.Profile'
|
|
storageServiceId:
|
|
description: Storage service ID.
|
|
type: integer
|
|
type: object
|
|
v1.UpdateIdentityProviderRequest:
|
|
properties:
|
|
config:
|
|
$ref: '#/definitions/v1.IdentityProviderConfig'
|
|
identifierFilter:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/v1.IdentityProviderType'
|
|
type: object
|
|
v1.UpdateResourceRequest:
|
|
properties:
|
|
filename:
|
|
type: string
|
|
type: object
|
|
v1.UpdateStorageRequest:
|
|
properties:
|
|
config:
|
|
$ref: '#/definitions/v1.StorageConfig'
|
|
name:
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/v1.StorageType'
|
|
type: object
|
|
v1.UpdateUserRequest:
|
|
properties:
|
|
avatarUrl:
|
|
type: string
|
|
email:
|
|
type: string
|
|
nickname:
|
|
type: string
|
|
password:
|
|
type: string
|
|
rowStatus:
|
|
$ref: '#/definitions/v1.RowStatus'
|
|
username:
|
|
type: string
|
|
type: object
|
|
v1.UpsertMemoOrganizerRequest:
|
|
properties:
|
|
pinned:
|
|
type: boolean
|
|
type: object
|
|
v1.UpsertMemoRelationRequest:
|
|
properties:
|
|
relatedMemoId:
|
|
type: integer
|
|
type:
|
|
$ref: '#/definitions/v1.MemoRelationType'
|
|
type: object
|
|
v1.UpsertMemoResourceRequest:
|
|
properties:
|
|
resourceId:
|
|
type: integer
|
|
updatedTs:
|
|
type: integer
|
|
type: object
|
|
v1.UpsertSystemSettingRequest:
|
|
properties:
|
|
description:
|
|
type: string
|
|
name:
|
|
$ref: '#/definitions/v1.SystemSettingName'
|
|
value:
|
|
type: string
|
|
type: object
|
|
v1.UpsertTagRequest:
|
|
properties:
|
|
name:
|
|
type: string
|
|
type: object
|
|
v1.UpsertUserSettingRequest:
|
|
properties:
|
|
key:
|
|
$ref: '#/definitions/v1.UserSettingKey'
|
|
value:
|
|
type: string
|
|
type: object
|
|
v1.User:
|
|
properties:
|
|
avatarUrl:
|
|
type: string
|
|
createdTs:
|
|
type: integer
|
|
email:
|
|
type: string
|
|
id:
|
|
type: integer
|
|
nickname:
|
|
type: string
|
|
role:
|
|
$ref: '#/definitions/v1.Role'
|
|
rowStatus:
|
|
allOf:
|
|
- $ref: '#/definitions/v1.RowStatus'
|
|
description: Standard fields
|
|
updatedTs:
|
|
type: integer
|
|
userSettingList:
|
|
items:
|
|
$ref: '#/definitions/v1.UserSetting'
|
|
type: array
|
|
username:
|
|
description: Domain specific fields
|
|
type: string
|
|
type: object
|
|
v1.UserSetting:
|
|
properties:
|
|
key:
|
|
$ref: '#/definitions/v1.UserSettingKey'
|
|
userId:
|
|
type: integer
|
|
value:
|
|
type: string
|
|
type: object
|
|
v1.UserSettingKey:
|
|
enum:
|
|
- locale
|
|
- appearance
|
|
- memo-visibility
|
|
- telegram-user-id
|
|
type: string
|
|
x-enum-varnames:
|
|
- UserSettingLocaleKey
|
|
- UserSettingAppearanceKey
|
|
- UserSettingMemoVisibilityKey
|
|
- UserSettingTelegramUserIDKey
|
|
v1.Visibility:
|
|
enum:
|
|
- PUBLIC
|
|
- PROTECTED
|
|
- PRIVATE
|
|
type: string
|
|
x-enum-varnames:
|
|
- Public
|
|
- Protected
|
|
- Private
|
|
externalDocs:
|
|
description: Find out more about Memos.
|
|
url: https://usememos.com/
|
|
info:
|
|
contact:
|
|
name: API Support
|
|
url: https://github.com/orgs/usememos/discussions
|
|
description: A privacy-first, lightweight note-taking service.
|
|
license:
|
|
name: MIT License
|
|
url: https://github.com/usememos/memos/blob/main/LICENSE
|
|
title: memos API
|
|
version: "1.0"
|
|
paths:
|
|
/api/v1/auth/signin:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Sign-in object
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.SignIn'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: User information
|
|
schema:
|
|
$ref: '#/definitions/store.User'
|
|
"400":
|
|
description: Malformatted signin request
|
|
"401":
|
|
description: Password login is deactivated | Incorrect login credentials,
|
|
please try again
|
|
"403":
|
|
description: User has been archived with username %s
|
|
"500":
|
|
description: Failed to find system setting | Failed to unmarshal system
|
|
setting | Incorrect login credentials, please try again | Failed to generate
|
|
tokens | Failed to create activity
|
|
summary: Sign-in to memos.
|
|
tags:
|
|
- auth
|
|
/api/v1/auth/signin/sso:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: SSO sign-in object
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.SSOSignIn'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: User information
|
|
schema:
|
|
$ref: '#/definitions/store.User'
|
|
"400":
|
|
description: Malformatted signin request
|
|
"401":
|
|
description: Access denied, identifier does not match the filter.
|
|
"403":
|
|
description: User has been archived with username {username}
|
|
"404":
|
|
description: Identity provider not found
|
|
"500":
|
|
description: Failed to find identity provider | Failed to create identity
|
|
provider instance | Failed to exchange token | Failed to get user info
|
|
| Failed to compile identifier filter | Incorrect login credentials, please
|
|
try again | Failed to generate random password | Failed to generate password
|
|
hash | Failed to create user | Failed to generate tokens | Failed to create
|
|
activity
|
|
summary: Sign-in to memos using SSO.
|
|
tags:
|
|
- auth
|
|
/api/v1/auth/signout:
|
|
post:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Sign-out success
|
|
schema:
|
|
type: boolean
|
|
summary: Sign-out from memos.
|
|
tags:
|
|
- auth
|
|
/api/v1/auth/signup:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Sign-up object
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.SignUp'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: User information
|
|
schema:
|
|
$ref: '#/definitions/store.User'
|
|
"400":
|
|
description: Malformatted signup request | Failed to find users
|
|
"401":
|
|
description: signup is disabled
|
|
"403":
|
|
description: Forbidden
|
|
"404":
|
|
description: Not found
|
|
"500":
|
|
description: Failed to find system setting | Failed to unmarshal system
|
|
setting allow signup | Failed to generate password hash | Failed to create
|
|
user | Failed to generate tokens | Failed to create activity
|
|
summary: Sign-up to memos.
|
|
tags:
|
|
- auth
|
|
/api/v1/idp:
|
|
get:
|
|
description: '*clientSecret is only available for host user'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: List of available identity providers
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/v1.IdentityProvider'
|
|
type: array
|
|
"500":
|
|
description: Failed to find identity provider list | Failed to find user
|
|
summary: Get a list of identity providers
|
|
tags:
|
|
- idp
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Identity provider information
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.CreateIdentityProviderRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Identity provider information
|
|
schema:
|
|
$ref: '#/definitions/store.IdentityProvider'
|
|
"400":
|
|
description: Malformatted post identity provider request
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"500":
|
|
description: Failed to find user | Failed to create identity provider
|
|
summary: Create Identity Provider
|
|
tags:
|
|
- idp
|
|
/api/v1/idp/{idpId}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Identity Provider ID
|
|
in: path
|
|
name: idpId
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Identity Provider deleted
|
|
schema:
|
|
type: boolean
|
|
"400":
|
|
description: 'ID is not a number: %s | Malformatted patch identity provider
|
|
request'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"500":
|
|
description: Failed to find user | Failed to patch identity provider
|
|
summary: Delete an identity provider by ID
|
|
tags:
|
|
- idp
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Identity provider ID
|
|
in: path
|
|
name: idpId
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Requested identity provider
|
|
schema:
|
|
$ref: '#/definitions/store.IdentityProvider'
|
|
"400":
|
|
description: 'ID is not a number: %s'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"404":
|
|
description: Identity provider not found
|
|
"500":
|
|
description: Failed to find identity provider list | Failed to find user
|
|
summary: Get an identity provider by ID
|
|
tags:
|
|
- idp
|
|
patch:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Identity Provider ID
|
|
in: path
|
|
name: idpId
|
|
required: true
|
|
type: integer
|
|
- description: Patched identity provider information
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UpdateIdentityProviderRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Patched identity provider
|
|
schema:
|
|
$ref: '#/definitions/store.IdentityProvider'
|
|
"400":
|
|
description: 'ID is not a number: %s | Malformatted patch identity provider
|
|
request'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"500":
|
|
description: Failed to find user | Failed to patch identity provider
|
|
summary: Update an identity provider by ID
|
|
tags:
|
|
- idp
|
|
/api/v1/memo:
|
|
get:
|
|
parameters:
|
|
- description: Creator ID
|
|
in: query
|
|
name: creatorId
|
|
type: integer
|
|
- description: Creator username
|
|
in: query
|
|
name: creatorUsername
|
|
type: string
|
|
- description: Row status
|
|
enum:
|
|
- NORMAL
|
|
- ARCHIVED
|
|
in: query
|
|
name: rowStatus
|
|
type: string
|
|
- description: Pinned
|
|
in: query
|
|
name: pinned
|
|
type: boolean
|
|
- description: 'Search for tag. Do not append #'
|
|
in: query
|
|
name: tag
|
|
type: string
|
|
- description: Search for content
|
|
in: query
|
|
name: content
|
|
type: string
|
|
- description: Limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo list
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/store.Memo'
|
|
type: array
|
|
"400":
|
|
description: Missing user to find memo
|
|
"500":
|
|
description: Failed to get memo display with updated ts setting value |
|
|
Failed to fetch memo list | Failed to compose memo response
|
|
summary: Get a list of memos matching optional filters
|
|
tags:
|
|
- memo
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Visibility can be PUBLIC, PROTECTED or PRIVATE
|
|
*You should omit fields to use their default values
|
|
parameters:
|
|
- description: Request object.
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.CreateMemoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Stored memo
|
|
schema:
|
|
$ref: '#/definitions/store.Memo'
|
|
"400":
|
|
description: Malformatted post memo request | Content size overflow, up
|
|
to 1MB
|
|
"401":
|
|
description: Missing user in session
|
|
"404":
|
|
description: 'User not found | Memo not found: %d'
|
|
"500":
|
|
description: Failed to find user setting | Failed to unmarshal user setting
|
|
value | Failed to find system setting | Failed to unmarshal system setting
|
|
| Failed to find user | Failed to create memo | Failed to create activity
|
|
| Failed to upsert memo resource | Failed to upsert memo relation | Failed
|
|
to compose memo | Failed to compose memo response
|
|
summary: Create a memo
|
|
tags:
|
|
- memo
|
|
/api/v1/memo/{memoId}:
|
|
delete:
|
|
parameters:
|
|
- description: Memo ID to delete
|
|
in: path
|
|
name: memoId
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo deleted
|
|
schema:
|
|
type: boolean
|
|
"400":
|
|
description: 'ID is not a number: %s'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"404":
|
|
description: 'Memo not found: %d'
|
|
"500":
|
|
description: 'Failed to find memo | Failed to delete memo ID: %v'
|
|
summary: Delete memo by ID
|
|
tags:
|
|
- memo
|
|
get:
|
|
parameters:
|
|
- description: Memo ID
|
|
in: path
|
|
name: memoId
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo list
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/store.Memo'
|
|
type: array
|
|
"400":
|
|
description: 'ID is not a number: %s'
|
|
"401":
|
|
description: Missing user in session
|
|
"403":
|
|
description: this memo is private only | this memo is protected, missing
|
|
user in session
|
|
"404":
|
|
description: 'Memo not found: %d'
|
|
"500":
|
|
description: 'Failed to find memo by ID: %v | Failed to compose memo response'
|
|
summary: Get memo by ID
|
|
tags:
|
|
- memo
|
|
patch:
|
|
consumes:
|
|
- application/json
|
|
description: |-
|
|
Visibility can be PUBLIC, PROTECTED or PRIVATE
|
|
*You should omit fields to use their default values
|
|
parameters:
|
|
- description: ID of memo to update
|
|
in: path
|
|
name: memoId
|
|
required: true
|
|
type: integer
|
|
- description: Patched object.
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.PatchMemoRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Stored memo
|
|
schema:
|
|
$ref: '#/definitions/store.Memo'
|
|
"400":
|
|
description: 'ID is not a number: %s | Malformatted patch memo request |
|
|
Content size overflow, up to 1MB'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"404":
|
|
description: 'Memo not found: %d'
|
|
"500":
|
|
description: Failed to find memo | Failed to patch memo | Failed to upsert
|
|
memo resource | Failed to delete memo resource | Failed to compose memo
|
|
response
|
|
summary: Update a memo
|
|
tags:
|
|
- memo
|
|
/api/v1/memo/{memoId}/organizer:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID of memo to organize
|
|
in: path
|
|
name: memoId
|
|
required: true
|
|
type: integer
|
|
- description: Memo organizer object
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UpsertMemoOrganizerRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo information
|
|
schema:
|
|
$ref: '#/definitions/store.Memo'
|
|
"400":
|
|
description: 'ID is not a number: %s | Malformatted post memo organizer
|
|
request'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"404":
|
|
description: 'Memo not found: %v'
|
|
"500":
|
|
description: 'Failed to find memo | Failed to upsert memo organizer | Failed
|
|
to find memo by ID: %v | Failed to compose memo response'
|
|
summary: Organize memo (pin/unpin)
|
|
tags:
|
|
- memo-organizer
|
|
/api/v1/memo/{memoId}/relation:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID of memo to find relations
|
|
in: path
|
|
name: memoId
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo relation information list
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/store.MemoRelation'
|
|
type: array
|
|
"400":
|
|
description: 'ID is not a number: %s'
|
|
"500":
|
|
description: Failed to list memo relations
|
|
summary: Get a list of Memo Relations
|
|
tags:
|
|
- memo-relation
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
description: Create a relation between two memos
|
|
parameters:
|
|
- description: ID of memo to relate
|
|
in: path
|
|
name: memoId
|
|
required: true
|
|
type: integer
|
|
- description: Memo relation object
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UpsertMemoRelationRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo relation information
|
|
schema:
|
|
$ref: '#/definitions/store.MemoRelation'
|
|
"400":
|
|
description: 'ID is not a number: %s | Malformatted post memo relation request'
|
|
"500":
|
|
description: Failed to upsert memo relation
|
|
summary: Create Memo Relation
|
|
tags:
|
|
- memo-relation
|
|
/api/v1/memo/{memoId}/relation/{relatedMemoId}/type/{relationType}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
description: Removes a relation between two memos
|
|
parameters:
|
|
- description: ID of memo to find relations
|
|
in: path
|
|
name: memoId
|
|
required: true
|
|
type: integer
|
|
- description: ID of memo to remove relation to
|
|
in: path
|
|
name: relatedMemoId
|
|
required: true
|
|
type: integer
|
|
- description: Type of relation to remove
|
|
enum:
|
|
- REFERENCE
|
|
- ADDITIONAL
|
|
in: path
|
|
name: relationType
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo relation deleted
|
|
schema:
|
|
type: boolean
|
|
"400":
|
|
description: 'Memo ID is not a number: %s | Related memo ID is not a number:
|
|
%s'
|
|
"500":
|
|
description: Failed to delete memo relation
|
|
summary: Delete a Memo Relation
|
|
tags:
|
|
- memo-relation
|
|
/api/v1/memo/{memoId}/resource:
|
|
get:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID of memo to fetch resource list from
|
|
in: path
|
|
name: memoId
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo resource list
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/v1.Resource'
|
|
type: array
|
|
"400":
|
|
description: 'ID is not a number: %s'
|
|
"500":
|
|
description: Failed to fetch resource list
|
|
summary: Get resource list of a memo
|
|
tags:
|
|
- memo-resource
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID of memo to bind resource to
|
|
in: path
|
|
name: memoId
|
|
required: true
|
|
type: integer
|
|
- description: Memo resource request object
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UpsertMemoResourceRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo resource binded
|
|
schema:
|
|
type: boolean
|
|
"400":
|
|
description: 'ID is not a number: %s | Malformatted post memo resource request
|
|
| Resource not found'
|
|
"401":
|
|
description: Missing user in session | Unauthorized to bind this resource
|
|
"500":
|
|
description: Failed to fetch resource | Failed to upsert memo resource
|
|
summary: Bind resource to memo
|
|
tags:
|
|
- memo-resource
|
|
/api/v1/memo/{memoId}/resource/{resourceId}:
|
|
delete:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: ID of memo to unbind resource from
|
|
in: path
|
|
name: memoId
|
|
required: true
|
|
type: integer
|
|
- description: ID of resource to unbind from memo
|
|
in: path
|
|
name: resourceId
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: 'Memo resource unbinded. *200 is returned even if the reference
|
|
doesn''t exists '
|
|
schema:
|
|
type: boolean
|
|
"400":
|
|
description: 'Memo ID is not a number: %s | Resource ID is not a number:
|
|
%s | Memo not found'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"500":
|
|
description: Failed to find memo | Failed to fetch resource list
|
|
summary: Unbind resource from memo
|
|
tags:
|
|
- memo-resource
|
|
/api/v1/memo/all:
|
|
get:
|
|
description: |-
|
|
This should also list protected memos if the user is logged in
|
|
Authentication is optional
|
|
parameters:
|
|
- description: Limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo list
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/store.Memo'
|
|
type: array
|
|
"500":
|
|
description: Failed to get memo display with updated ts setting value |
|
|
Failed to fetch all memo list | Failed to compose memo response
|
|
summary: Get a list of public memos matching optional filters
|
|
tags:
|
|
- memo
|
|
/api/v1/memo/stats:
|
|
get:
|
|
description: Used to generate the heatmap
|
|
parameters:
|
|
- description: Creator ID
|
|
in: query
|
|
name: creatorId
|
|
type: integer
|
|
- description: Creator username
|
|
in: query
|
|
name: creatorUsername
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Memo createdTs list
|
|
schema:
|
|
items:
|
|
type: integer
|
|
type: array
|
|
"400":
|
|
description: Missing user id to find memo
|
|
"500":
|
|
description: Failed to get memo display with updated ts setting value |
|
|
Failed to find memo list | Failed to compose memo response
|
|
summary: Get memo stats by creator ID or username
|
|
tags:
|
|
- memo
|
|
/api/v1/ping:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: If succeed to ping the system
|
|
schema:
|
|
type: boolean
|
|
summary: Ping the system
|
|
tags:
|
|
- system
|
|
/api/v1/resource:
|
|
get:
|
|
parameters:
|
|
- description: Limit
|
|
in: query
|
|
name: limit
|
|
type: integer
|
|
- description: Offset
|
|
in: query
|
|
name: offset
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Resource list
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/store.Resource'
|
|
type: array
|
|
"401":
|
|
description: Missing user in session
|
|
"500":
|
|
description: Failed to fetch resource list
|
|
summary: Get a list of resources
|
|
tags:
|
|
- resource
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Request object.
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.CreateResourceRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Created resource
|
|
schema:
|
|
$ref: '#/definitions/store.Resource'
|
|
"400":
|
|
description: Malformatted post resource request | Invalid external link
|
|
| Invalid external link scheme | Failed to request %s | Failed to read
|
|
%s | Failed to read mime from %s
|
|
"401":
|
|
description: Missing user in session
|
|
"500":
|
|
description: Failed to save resource | Failed to create resource | Failed
|
|
to create activity
|
|
summary: Create resource
|
|
tags:
|
|
- resource
|
|
/api/v1/resource/{resourceId}:
|
|
delete:
|
|
parameters:
|
|
- description: Resource ID
|
|
in: path
|
|
name: resourceId
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Resource deleted
|
|
schema:
|
|
type: boolean
|
|
"400":
|
|
description: 'ID is not a number: %s'
|
|
"401":
|
|
description: Missing user in session
|
|
"404":
|
|
description: 'Resource not found: %d'
|
|
"500":
|
|
description: Failed to find resource | Failed to delete resource
|
|
summary: Delete a resource
|
|
tags:
|
|
- resource
|
|
patch:
|
|
parameters:
|
|
- description: Resource ID
|
|
in: path
|
|
name: resourceId
|
|
required: true
|
|
type: integer
|
|
- description: Patch resource request
|
|
in: body
|
|
name: patch
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UpdateResourceRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Updated resource
|
|
schema:
|
|
$ref: '#/definitions/store.Resource'
|
|
"400":
|
|
description: 'ID is not a number: %s | Malformatted patch resource request'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"404":
|
|
description: 'Resource not found: %d'
|
|
"500":
|
|
description: Failed to find resource | Failed to patch resource
|
|
summary: Update a resource
|
|
tags:
|
|
- resource
|
|
/api/v1/resource/blob:
|
|
post:
|
|
consumes:
|
|
- multipart/form-data
|
|
parameters:
|
|
- description: File to upload
|
|
in: formData
|
|
name: file
|
|
required: true
|
|
type: file
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Created resource
|
|
schema:
|
|
$ref: '#/definitions/store.Resource'
|
|
"400":
|
|
description: Upload file not found | File size exceeds allowed limit of
|
|
%d MiB | Failed to parse upload data
|
|
"401":
|
|
description: Missing user in session
|
|
"500":
|
|
description: Failed to get uploading file | Failed to open file | Failed
|
|
to save resource | Failed to create resource | Failed to create activity
|
|
summary: Upload resource
|
|
tags:
|
|
- resource
|
|
/api/v1/status:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: System GetSystemStatus
|
|
schema:
|
|
$ref: '#/definitions/v1.SystemStatus'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"500":
|
|
description: Failed to find host user | Failed to find system setting list
|
|
| Failed to unmarshal system setting customized profile value
|
|
summary: Get system GetSystemStatus
|
|
tags:
|
|
- system
|
|
/api/v1/storage:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: List of storages
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/store.Storage'
|
|
type: array
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"500":
|
|
description: Failed to find user | Failed to convert storage
|
|
summary: Get a list of storages
|
|
tags:
|
|
- storage
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Request object.
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.CreateStorageRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Created storage
|
|
schema:
|
|
$ref: '#/definitions/store.Storage'
|
|
"400":
|
|
description: Malformatted post storage request
|
|
"401":
|
|
description: Missing user in session
|
|
"500":
|
|
description: Failed to find user | Failed to create storage | Failed to
|
|
convert storage
|
|
summary: Create storage
|
|
tags:
|
|
- storage
|
|
/api/v1/storage/{storageId}:
|
|
delete:
|
|
parameters:
|
|
- description: Storage ID
|
|
in: path
|
|
name: storageId
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Storage deleted
|
|
schema:
|
|
type: boolean
|
|
"400":
|
|
description: 'ID is not a number: %s | Storage service %d is using'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"500":
|
|
description: Failed to find user | Failed to find storage | Failed to unmarshal
|
|
storage service id | Failed to delete storage
|
|
summary: Delete a storage
|
|
tags:
|
|
- storage
|
|
patch:
|
|
parameters:
|
|
- description: Storage ID
|
|
in: path
|
|
name: storageId
|
|
required: true
|
|
type: integer
|
|
- description: Patch request
|
|
in: body
|
|
name: patch
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UpdateStorageRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Updated resource
|
|
schema:
|
|
$ref: '#/definitions/store.Storage'
|
|
"400":
|
|
description: 'ID is not a number: %s | Malformatted patch storage request
|
|
| Malformatted post storage request'
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"500":
|
|
description: Failed to find user | Failed to patch storage | Failed to convert
|
|
storage
|
|
summary: Update a storage
|
|
tags:
|
|
- storage
|
|
/api/v1/system/setting:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: System setting list
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/v1.SystemSetting'
|
|
type: array
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"500":
|
|
description: Failed to find user | Failed to find system setting list
|
|
summary: Get a list of system settings
|
|
tags:
|
|
- system-setting
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Request object.
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UpsertSystemSettingRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Created system setting
|
|
schema:
|
|
$ref: '#/definitions/store.SystemSetting'
|
|
"400":
|
|
description: Malformatted post system setting request | invalid system setting
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"403":
|
|
description: Cannot disable passwords if no SSO identity provider is configured.
|
|
"500":
|
|
description: Failed to find user | Failed to upsert system setting
|
|
summary: Create system setting
|
|
tags:
|
|
- system-setting
|
|
/api/v1/system/vacuum:
|
|
post:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Database vacuumed
|
|
schema:
|
|
type: boolean
|
|
"401":
|
|
description: Missing user in session | Unauthorized
|
|
"500":
|
|
description: Failed to find user | Failed to ExecVacuum database
|
|
summary: Vacuum the database
|
|
tags:
|
|
- system
|
|
/api/v1/tag:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Tag list
|
|
schema:
|
|
items:
|
|
type: string
|
|
type: array
|
|
"400":
|
|
description: Missing user id to find tag
|
|
"500":
|
|
description: Failed to find tag list
|
|
summary: Get a list of tags
|
|
tags:
|
|
- tag
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Request object.
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UpsertTagRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Created tag name
|
|
schema:
|
|
type: string
|
|
"400":
|
|
description: Malformatted post tag request | Tag name shouldn't be empty
|
|
"401":
|
|
description: Missing user in session
|
|
"500":
|
|
description: Failed to upsert tag | Failed to create activity
|
|
summary: Create a tag
|
|
tags:
|
|
- tag
|
|
/api/v1/tag/delete:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Request object.
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.DeleteTagRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Tag deleted
|
|
schema:
|
|
type: boolean
|
|
"400":
|
|
description: Malformatted post tag request | Tag name shouldn't be empty
|
|
"401":
|
|
description: Missing user in session
|
|
"500":
|
|
description: 'Failed to delete tag name: %v'
|
|
summary: Delete a tag
|
|
tags:
|
|
- tag
|
|
/api/v1/tag/suggestion:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Tag list
|
|
schema:
|
|
items:
|
|
type: string
|
|
type: array
|
|
"400":
|
|
description: Missing user session
|
|
"500":
|
|
description: Failed to find memo list | Failed to find tag list
|
|
summary: Get a list of tags suggested from other memos contents
|
|
tags:
|
|
- tag
|
|
/api/v1/user:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: User list
|
|
schema:
|
|
items:
|
|
$ref: '#/definitions/store.User'
|
|
type: array
|
|
"500":
|
|
description: Failed to fetch user list
|
|
summary: Get a list of users
|
|
tags:
|
|
- user
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Request object
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.CreateUserRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Created user
|
|
schema:
|
|
$ref: '#/definitions/store.User'
|
|
"400":
|
|
description: Malformatted post user request | Invalid user create format
|
|
"401":
|
|
description: Missing auth session | Unauthorized to create user
|
|
"403":
|
|
description: Could not create host user
|
|
"500":
|
|
description: Failed to find user by id | Failed to generate password hash
|
|
| Failed to create user | Failed to create activity
|
|
summary: Create a user
|
|
tags:
|
|
- user
|
|
/api/v1/user/{id}:
|
|
delete:
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: User deleted
|
|
schema:
|
|
type: boolean
|
|
"400":
|
|
description: 'ID is not a number: %s | Current session user not found with
|
|
ID: %d'
|
|
"401":
|
|
description: Missing user in session
|
|
"403":
|
|
description: Unauthorized to delete user
|
|
"500":
|
|
description: Failed to find user | Failed to delete user
|
|
summary: Delete a user
|
|
tags:
|
|
- user
|
|
get:
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Requested user
|
|
schema:
|
|
$ref: '#/definitions/store.User'
|
|
"400":
|
|
description: Malformatted user id
|
|
"404":
|
|
description: User not found
|
|
"500":
|
|
description: Failed to find user
|
|
summary: Get user by id
|
|
tags:
|
|
- user
|
|
patch:
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: Patch request
|
|
in: body
|
|
name: patch
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UpdateUserRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Updated user
|
|
schema:
|
|
$ref: '#/definitions/store.User'
|
|
"400":
|
|
description: 'ID is not a number: %s | Current session user not found with
|
|
ID: %d | Malformatted patch user request | Invalid update user request'
|
|
"401":
|
|
description: Missing user in session
|
|
"403":
|
|
description: Unauthorized to update user
|
|
"500":
|
|
description: Failed to find user | Failed to generate password hash | Failed
|
|
to patch user | Failed to find userSettingList
|
|
summary: Update a user
|
|
tags:
|
|
- user
|
|
/api/v1/user/me:
|
|
get:
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Current user
|
|
schema:
|
|
$ref: '#/definitions/store.User'
|
|
"401":
|
|
description: Missing auth session
|
|
"500":
|
|
description: Failed to find user | Failed to find userSettingList
|
|
summary: Get current user
|
|
tags:
|
|
- user
|
|
/api/v1/user/name/{username}:
|
|
get:
|
|
parameters:
|
|
- description: Username
|
|
in: path
|
|
name: username
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Requested user
|
|
schema:
|
|
$ref: '#/definitions/store.User'
|
|
"404":
|
|
description: User not found
|
|
"500":
|
|
description: Failed to find user
|
|
summary: Get user by username
|
|
tags:
|
|
- user
|
|
/api/v1/user/setting:
|
|
post:
|
|
consumes:
|
|
- application/json
|
|
parameters:
|
|
- description: Request object.
|
|
in: body
|
|
name: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/v1.UpsertUserSettingRequest'
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Created user setting
|
|
schema:
|
|
$ref: '#/definitions/github_com_usememos_memos_store.UserSetting'
|
|
"400":
|
|
description: Malformatted post user setting upsert request | Invalid user
|
|
setting format
|
|
"401":
|
|
description: Missing auth session
|
|
"500":
|
|
description: Failed to upsert user setting
|
|
summary: Upsert user setting
|
|
tags:
|
|
- user-setting
|
|
/explore/rss.xml:
|
|
get:
|
|
produces:
|
|
- text/xml
|
|
responses:
|
|
"200":
|
|
description: RSS
|
|
"500":
|
|
description: Failed to get system customized profile | Failed to find memo
|
|
list | Failed to generate rss
|
|
summary: Get RSS
|
|
tags:
|
|
- rss
|
|
/o/get/GetImage:
|
|
get:
|
|
parameters:
|
|
- description: Image url
|
|
in: query
|
|
name: url
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- GetImage/*
|
|
responses:
|
|
"200":
|
|
description: Image
|
|
"400":
|
|
description: 'Missing GetImage url | Wrong url | Failed to get GetImage
|
|
url: %s'
|
|
"500":
|
|
description: Failed to write GetImage blob
|
|
summary: Get GetImage from URL
|
|
tags:
|
|
- get
|
|
/o/get/GetWebsiteMetadata:
|
|
get:
|
|
parameters:
|
|
- description: Website URL
|
|
in: query
|
|
name: url
|
|
required: true
|
|
type: string
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: Extracted metadata
|
|
schema:
|
|
$ref: '#/definitions/getter.HTMLMeta'
|
|
"400":
|
|
description: Missing website url | Wrong url
|
|
"406":
|
|
description: 'Failed to get website meta with url: %s'
|
|
summary: Get website metadata
|
|
tags:
|
|
- get
|
|
/o/r/{resourceId}:
|
|
get:
|
|
description: '*Swagger UI may have problems displaying other file types than
|
|
images'
|
|
parameters:
|
|
- description: Resource ID
|
|
in: path
|
|
name: resourceId
|
|
required: true
|
|
type: integer
|
|
- description: Thumbnail
|
|
in: query
|
|
name: thumbnail
|
|
type: integer
|
|
produces:
|
|
- application/octet-stream
|
|
responses:
|
|
"200":
|
|
description: Requested resource
|
|
"400":
|
|
description: 'ID is not a number: %s | Failed to get resource visibility'
|
|
"401":
|
|
description: Resource visibility not match
|
|
"404":
|
|
description: 'Resource not found: %d'
|
|
"500":
|
|
description: 'Failed to find resource by ID: %v | Failed to open the local
|
|
resource: %s | Failed to read the local resource: %s'
|
|
summary: Stream a resource
|
|
tags:
|
|
- resource
|
|
/u/{id}/rss.xml:
|
|
get:
|
|
parameters:
|
|
- description: User ID
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: integer
|
|
produces:
|
|
- text/xml
|
|
responses:
|
|
"200":
|
|
description: RSS
|
|
"400":
|
|
description: User id is not a number
|
|
"500":
|
|
description: Failed to get system customized profile | Failed to find memo
|
|
list | Failed to generate rss
|
|
summary: Get RSS for a user
|
|
tags:
|
|
- rss
|
|
swagger: "2.0"
|