Files
infisical/docs/spec.yaml
Ashley Hutson e38933c0b3 Include Id on project
The project should have its id exposed.
2023-01-26 19:32:44 -08:00

2622 lines
64 KiB
YAML

openapi: 3.0.0
info:
title: Infisical API
description: List of all available APIs that can be consumed
version: 1.0.0
servers:
- url: https://infisical.com
description: Production server
- url: http://localhost:8080
description: Local server
paths:
/api/v1/secret/{secretId}/secret-versions:
get:
summary: Return secret versions
description: Return secret versions
parameters:
- name: secretId
in: path
required: true
schema:
type: string
description: ID of secret
- name: offset
description: Number of versions to skip
required: false
in: query
schema:
type: string
- name: limit
description: Maximum number of versions to return
required: false
in: query
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
secretVersions:
type: array
items:
$ref: '#/components/schemas/SecretVersion'
description: Secret versions
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v1/secret/{secretId}/secret-versions/rollback:
post:
summary: Roll back secret to a version.
description: Roll back secret to a version.
parameters:
- name: secretId
in: path
required: true
schema:
type: string
description: ID of secret
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
secret:
type: object
$ref: '#/components/schemas/Secret'
description: Secret rolled back to
'400':
description: Bad Request
security:
- apiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
version:
type: integer
description: Version of secret to roll back to
/api/v1/secret-snapshot/{secretSnapshotId}:
get:
description: ''
parameters:
- name: secretSnapshotId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/workspace/{workspaceId}/secret-snapshots:
get:
summary: Return project secret snapshot ids
description: Return project secret snapshots ids
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
description: ID of project
- name: offset
description: Number of secret snapshots to skip
required: false
in: query
schema:
type: string
- name: limit
description: Maximum number of secret snapshots to return
required: false
in: query
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
secretSnapshots:
type: array
items:
$ref: '#/components/schemas/SecretSnapshot'
description: Project secret snapshots
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v1/workspace/{workspaceId}/secret-snapshots/count:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/workspace/{workspaceId}/secret-snapshots/rollback:
post:
summary: >-
Roll back project secrets to those captured in a secret snapshot
version.
description: >-
Roll back project secrets to those captured in a secret snapshot
version.
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
description: ID of project
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
secrets:
type: array
items:
$ref: '#/components/schemas/Secret'
description: Secrets rolled back to
'400':
description: Bad Request
security:
- apiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
version:
type: integer
description: Version of secret snapshot to roll back to
/api/v1/workspace/{workspaceId}/logs:
get:
summary: Return project (audit) logs
description: Return project (audit) logs
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
description: ID of project
- name: userId
description: ID of project member
required: false
in: query
schema:
type: string
- name: offset
description: Number of logs to skip
required: false
in: query
schema:
type: string
- name: limit
description: Maximum number of logs to return
required: false
in: query
schema:
type: string
- name: sortBy
description: Order to sort the logs by
schema:
type: string
enum:
- oldest
- recent
required: false
in: query
- name: actionNames
description: Names of log actions (comma-separated)
required: false
in: query
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
logs:
type: array
items:
$ref: '#/components/schemas/Log'
description: Project logs
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v1/action/{actionId}:
get:
description: ''
parameters:
- name: actionId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
/api/v1/signup/email/signup:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
'403':
description: Forbidden
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
/api/v1/signup/email/verify:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
'403':
description: Forbidden
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
code:
example: any
/api/v1/signup/complete-account/signup:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
'403':
description: Forbidden
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
firstName:
example: any
lastName:
example: any
publicKey:
example: any
encryptedPrivateKey:
example: any
iv:
example: any
tag:
example: any
salt:
example: any
verifier:
example: any
organizationName:
example: any
/api/v1/signup/complete-account/invite:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
'403':
description: Forbidden
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
firstName:
example: any
lastName:
example: any
publicKey:
example: any
encryptedPrivateKey:
example: any
iv:
example: any
tag:
example: any
salt:
example: any
verifier:
example: any
/api/v1/auth/token:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/auth/login1:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
clientPublicKey:
example: any
/api/v1/auth/login2:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
clientProof:
example: any
/api/v1/auth/logout:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/auth/checkAuth:
post:
description: ''
parameters: []
responses:
'200':
description: OK
/api/v1/bot/{workspaceId}:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/bot/{botId}/active:
patch:
description: ''
parameters:
- name: botId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
isActive:
example: any
botKey:
example: any
/api/v1/user/:
get:
description: ''
parameters: []
responses:
'200':
description: OK
/api/v1/user-action/:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
action:
example: any
get:
description: ''
parameters:
- name: action
in: query
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/organization/:
get:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
organizationName:
example: any
/api/v1/organization/{organizationId}:
get:
description: ''
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/organization/{organizationId}/users:
get:
description: ''
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/organization/{organizationId}/my-workspaces:
get:
description: ''
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/organization/{organizationId}/name:
patch:
description: ''
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
example: any
/api/v1/organization/{organizationId}/incidentContactOrg:
get:
description: ''
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
post:
description: ''
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
delete:
description: ''
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
/api/v1/organization/{organizationId}/customer-portal-session:
post:
description: ''
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/organization/{organizationId}/subscriptions:
get:
description: ''
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/workspace/{workspaceId}/keys:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/workspace/{workspaceId}/users:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/workspace/:
get:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
workspaceName:
example: any
organizationId:
example: any
/api/v1/workspace/{workspaceId}:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
delete:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/workspace/{workspaceId}/name:
post:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
example: any
/api/v1/workspace/{workspaceId}/invite-signup:
post:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
/api/v1/workspace/{workspaceId}/integrations:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/workspace/{workspaceId}/authorizations:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/workspace/{workspaceId}/service-tokens:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/membership-org/membershipOrg/{membershipOrgId}/change-role:
post:
description: ''
parameters:
- name: membershipOrgId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
/api/v1/membership-org/{membershipOrgId}:
delete:
description: ''
parameters:
- name: membershipOrgId
in: path
required: true
schema:
type: string
responses:
'400':
description: Bad Request
/api/v1/membership/{workspaceId}/connect:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/membership/{membershipId}:
delete:
description: ''
parameters:
- name: membershipId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/membership/{membershipId}/change-role:
post:
description: ''
parameters:
- name: membershipId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
role:
example: any
/api/v1/key/{workspaceId}:
post:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
key:
example: any
/api/v1/key/{workspaceId}/latest:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/invite-org/signup:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
organizationId:
example: any
inviteeEmail:
example: any
/api/v1/invite-org/verify:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
code:
example: any
/api/v1/secret/{workspaceId}:
post:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
secrets:
example: any
keys:
example: any
environment:
example: any
channel:
example: any
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
- name: environment
in: query
schema:
type: string
- name: channel
in: query
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/secret/{workspaceId}/service-token:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
- name: environment
in: query
schema:
type: string
- name: channel
in: query
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/service-token/:
get:
description: ''
parameters: []
responses:
'200':
description: OK
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
example: any
workspaceId:
example: any
environment:
example: any
expiresIn:
example: any
publicKey:
example: any
encryptedKey:
example: any
nonce:
example: any
/api/v1/password/srp1:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
clientPublicKey:
example: any
/api/v1/password/change-password:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
clientProof:
example: any
encryptedPrivateKey:
example: any
iv:
example: any
tag:
example: any
salt:
example: any
verifier:
example: any
/api/v1/password/email/password-reset:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
'403':
description: Forbidden
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
/api/v1/password/email/password-reset-verify:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
'403':
description: Forbidden
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
example: any
code:
example: any
/api/v1/password/backup-private-key:
get:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
clientProof:
example: any
encryptedPrivateKey:
example: any
iv:
example: any
tag:
example: any
salt:
example: any
verifier:
example: any
/api/v1/password/password-reset:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
encryptedPrivateKey:
example: any
iv:
example: any
tag:
example: any
salt:
example: any
verifier:
example: any
/api/v1/stripe/webhook:
post:
description: ''
parameters:
- name: stripe-signature
in: header
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/integration/{integrationId}:
patch:
description: ''
parameters:
- name: integrationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
app:
example: any
environment:
example: any
isActive:
example: any
target:
example: any
context:
example: any
siteId:
example: any
delete:
description: ''
parameters:
- name: integrationId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/integration-auth/integration-options:
get:
description: ''
parameters: []
responses:
'200':
description: OK
/api/v1/integration-auth/oauth-token:
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
workspaceId:
example: any
code:
example: any
integration:
example: any
/api/v1/integration-auth/{integrationAuthId}/apps:
get:
description: ''
parameters:
- name: integrationAuthId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v1/integration-auth/{integrationAuthId}:
delete:
description: ''
parameters:
- name: integrationAuthId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v2/users/me:
get:
summary: Retrieve the current user on the request
description: Retrieve the current user on the request
parameters: []
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
user:
type: object
$ref: '#/components/schemas/CurrentUser'
description: Current user on request
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v2/users/me/organizations:
get:
summary: Return organizations that current user is part of
description: Return organizations that current user is part of
parameters: []
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
organizations:
type: array
items:
$ref: '#/components/schemas/Organization'
description: Organizations that user is part of
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v2/organizations/{organizationId}/memberships:
get:
summary: Return organization memberships
description: Return organization memberships
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
description: ID of organization
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
memberships:
type: array
items:
$ref: '#/components/schemas/MembershipOrg'
description: Memberships of organization
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v2/organizations/{organizationId}/memberships/{membershipId}:
patch:
summary: Update organization membership
description: Update organization membership
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
description: ID of organization
- name: membershipId
in: path
required: true
schema:
type: string
description: ID of organization membership to update
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
membership:
$ref: '#/components/schemas/MembershipOrg'
description: Updated organization membership
'400':
description: Bad Request
security:
- apiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
role:
type: string
description: >-
Role of organization membership - either owner, admin, or
member
delete:
summary: Delete organization membership
description: Delete organization membership
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
description: ID of organization
- name: membershipId
in: path
required: true
schema:
type: string
description: ID of organization membership to delete
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
membership:
$ref: '#/components/schemas/MembershipOrg'
description: Deleted organization membership
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v2/organizations/{organizationId}/workspaces:
get:
summary: Return projects in organization that user is part of
description: Return projects in organization that user is part of
parameters:
- name: organizationId
in: path
required: true
schema:
type: string
description: ID of organization
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
workspaces:
type: array
items:
$ref: '#/components/schemas/Project'
description: Projects of organization
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v2/workspace/{workspaceId}/environments:
post:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
environmentName:
example: any
environmentSlug:
example: any
put:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
environmentName:
example: any
environmentSlug:
example: any
oldEnvironmentSlug:
example: any
delete:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
environmentSlug:
example: any
/api/v2/workspace/{workspaceId}/secrets:
post:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
secrets:
example: any
keys:
example: any
environment:
example: any
channel:
example: any
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
- name: environment
in: query
schema:
type: string
- name: channel
in: query
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v2/workspace/{workspaceId}/encrypted-key:
get:
summary: Return encrypted project key
description: Return encrypted project key
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
description: ID of project
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ProjectKey'
description: Encrypted project key for the given project
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v2/workspace/{workspaceId}/service-token-data:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v2/workspace/{workspaceId}/memberships:
get:
summary: Return project memberships
description: Return project memberships
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
description: ID of project
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
memberships:
type: array
items:
$ref: '#/components/schemas/Membership'
description: Memberships of project
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v2/workspace/{workspaceId}/memberships/{membershipId}:
patch:
summary: Update project membership
description: Update project membership
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
description: ID of project
- name: membershipId
in: path
required: true
schema:
type: string
description: ID of project membership to update
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
membership:
$ref: '#/components/schemas/Membership'
description: Updated membership
'400':
description: Bad Request
security:
- apiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
role:
type: string
description: Role of membership - either admin or member
delete:
summary: Delete project membership
description: Delete project membership
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
description: ID of project
- name: membershipId
in: path
required: true
schema:
type: string
description: ID of project membership to delete
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
membership:
$ref: '#/components/schemas/Membership'
description: Deleted membership
'400':
description: Bad Request
security:
- apiKeyAuth: []
/api/v2/secret/batch-create/workspace/{workspaceId}/environment/{environment}:
post:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
- name: environment
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties:
secrets:
example: any
/api/v2/secret/workspace/{workspaceId}/environment/{environment}:
post:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
- name: environment
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties:
secret:
example: any
/api/v2/secret/workspace/{workspaceId}:
get:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
- name: environment
in: query
schema:
type: string
responses:
'200':
description: OK
/api/v2/secret/{secretId}:
get:
description: ''
parameters:
- name: secretId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
delete:
description: ''
parameters:
- name: secretId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
/api/v2/secret/batch/workspace/{workspaceId}/environment/{environmentName}:
delete:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
- name: environmentName
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties:
secretIds:
example: any
/api/v2/secret/batch-modify/workspace/{workspaceId}/environment/{environmentName}:
patch:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
- name: environmentName
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties:
secrets:
example: any
/api/v2/secret/workspace/{workspaceId}/environment/{environmentName}:
patch:
description: ''
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
- name: environmentName
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
requestBody:
content:
application/json:
schema:
type: object
properties:
secret:
example: any
/api/v2/secrets/:
post:
summary: Create new secret(s)
description: Create one or many secrets for a given project and environment.
parameters: []
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
secrets:
type: array
items:
$ref: '#/components/schemas/Secret'
description: >-
Newly-created secrets for the given project and
environment
security:
- apiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
workspaceId:
type: string
description: ID of project
environment:
type: string
description: Environment within project
secrets:
$ref: '#/components/schemas/CreateSecret'
description: Secret(s) to create - object or array of objects
get:
summary: Read secrets
description: Read secrets from a project and environment
parameters:
- name: workspaceId
description: ID of project
required: true
in: query
schema:
type: string
- name: environment
description: Environment within project
required: true
in: query
schema:
type: string
- name: content
in: query
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
secrets:
type: array
items:
$ref: '#/components/schemas/Secret'
description: Secrets for the given project and environment
security:
- apiKeyAuth: []
patch:
summary: Update secret(s)
description: Update secret(s)
parameters: []
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
secrets:
type: array
items:
$ref: '#/components/schemas/Secret'
description: Updated secrets
security:
- apiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
secrets:
$ref: '#/components/schemas/UpdateSecret'
description: Secret(s) to update - object or array of objects
delete:
summary: Delete secret(s)
description: Delete one or many secrets by their ID(s)
parameters: []
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
secrets:
type: array
items:
$ref: '#/components/schemas/Secret'
description: Deleted secrets
security:
- apiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
secretIds:
type: string
description: ID(s) of secrets - string or array of strings
/api/v2/service-token/:
get:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
example: any
workspaceId:
example: any
environment:
example: any
encryptedKey:
example: any
iv:
example: any
tag:
example: any
expiresIn:
example: any
/api/v2/service-token/{serviceTokenDataId}:
delete:
description: ''
parameters:
- name: serviceTokenDataId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/v2/api-key/:
get:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
post:
description: ''
parameters: []
responses:
'200':
description: OK
'400':
description: Bad Request
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
example: any
expiresIn:
example: any
/api/v2/api-key/{apiKeyDataId}:
delete:
description: ''
parameters:
- name: apiKeyDataId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: Bad Request
/api/status:
get:
description: ''
parameters: []
responses:
'200':
description: OK
components:
schemas:
CurrentUser:
type: object
properties:
_id:
type: string
example: ''
email:
type: string
example: johndoe@gmail.com
firstName:
type: string
example: John
lastName:
type: string
example: Doe
publicKey:
type: string
example: johns_nacl_public_key
encryptedPrivateKey:
type: string
example: johns_enc_nacl_private_key
iv:
type: string
example: iv_of_enc_nacl_private_key
tag:
type: string
example: tag_of_enc_nacl_private_key
updatedAt:
type: string
example: '2023-01-13T14:16:12.210Z'
createdAt:
type: string
example: '2023-01-13T14:16:12.210Z'
Membership:
type: object
properties:
user:
type: object
properties:
_id:
type: string
example: ''
email:
type: string
example: johndoe@gmail.com
firstName:
type: string
example: John
lastName:
type: string
example: Doe
publicKey:
type: string
example: johns_nacl_public_key
updatedAt:
type: string
example: '2023-01-13T14:16:12.210Z'
createdAt:
type: string
example: '2023-01-13T14:16:12.210Z'
workspace:
type: string
example: ''
role:
type: string
example: admin
MembershipOrg:
type: object
properties:
user:
type: object
properties:
_id:
type: string
example: ''
email:
type: string
example: johndoe@gmail.com
firstName:
type: string
example: John
lastName:
type: string
example: Doe
publicKey:
type: string
example: johns_nacl_public_key
updatedAt:
type: string
example: '2023-01-13T14:16:12.210Z'
createdAt:
type: string
example: '2023-01-13T14:16:12.210Z'
organization:
type: string
example: ''
role:
type: string
example: owner
status:
type: string
example: accepted
Organization:
type: object
properties:
_id:
type: string
example: ''
name:
type: string
example: Acme Corp.
customerId:
type: string
example: ''
Project:
type: object
properties:
_id:
type: string
example: ''
name:
type: string
example: My Project
organization:
type: string
example: ''
environments:
type: array
items:
type: object
properties:
name:
type: string
example: development
slug:
type: string
example: dev
ProjectKey:
type: object
properties:
encryptedkey:
type: string
example: ''
nonce:
type: string
example: ''
sender:
type: object
properties:
publicKey:
type: string
example: senders_nacl_public_key
receiver:
type: string
example: ''
workspace:
type: string
example: ''
CreateSecret:
type: object
properties:
type:
type: string
example: shared
secretKeyCiphertext:
type: string
example: ''
secretKeyIV:
type: string
example: ''
secretKeyTag:
type: string
example: ''
secretValueCiphertext:
type: string
example: ''
secretValueIV:
type: string
example: ''
secretValueTag:
type: string
example: ''
secretCommentCiphertext:
type: string
example: ''
secretCommentIV:
type: string
example: ''
secretCommentTag:
type: string
example: ''
UpdateSecret:
type: object
properties:
id:
type: string
example: ''
secretKeyCiphertext:
type: string
example: ''
secretKeyIV:
type: string
example: ''
secretKeyTag:
type: string
example: ''
secretValueCiphertext:
type: string
example: ''
secretValueIV:
type: string
example: ''
secretValueTag:
type: string
example: ''
secretCommentCiphertext:
type: string
example: ''
secretCommentIV:
type: string
example: ''
secretCommentTag:
type: string
example: ''
Secret:
type: object
properties:
_id:
type: string
example: ''
version:
type: number
example: 1
workspace:
type: string
example: ''
type:
type: string
example: shared
user: {}
secretKeyCiphertext:
type: string
example: ''
secretKeyIV:
type: string
example: ''
secretKeyTag:
type: string
example: ''
secretValueCiphertext:
type: string
example: ''
secretValueIV:
type: string
example: ''
secretValueTag:
type: string
example: ''
secretCommentCiphertext:
type: string
example: ''
secretCommentIV:
type: string
example: ''
secretCommentTag:
type: string
example: ''
updatedAt:
type: string
example: '2023-01-13T14:16:12.210Z'
createdAt:
type: string
example: '2023-01-13T14:16:12.210Z'
Log:
type: object
properties:
_id:
type: string
example: ''
user:
type: object
properties:
_id:
type: string
example: ''
email:
type: string
example: johndoe@gmail.com
firstName:
type: string
example: John
lastName:
type: string
example: Doe
workspace:
type: string
example: ''
actionNames:
type: array
example:
- addSecrets
items:
type: string
actions:
type: array
items:
type: object
properties:
name:
type: string
example: addSecrets
user:
type: string
example: ''
workspace:
type: string
example: ''
payload:
type: array
items:
type: object
properties:
oldSecretVersion:
type: string
example: ''
newSecretVersion:
type: string
example: ''
channel:
type: string
example: cli
ipAddress:
type: string
example: 192.168.0.1
updatedAt:
type: string
example: '2023-01-13T14:16:12.210Z'
createdAt:
type: string
example: '2023-01-13T14:16:12.210Z'
SecretSnapshot:
type: object
properties:
workspace:
type: string
example: ''
version:
type: number
example: 1
secretVersions:
type: array
items:
type: object
properties:
_id:
type: string
example: ''
SecretVersion:
type: object
properties:
_id:
type: string
example: ''
secret:
type: string
example: ''
version:
type: number
example: 1
workspace:
type: string
example: ''
type:
type: string
example: shared
user:
type: string
example: ''
environment:
type: string
example: dev
isDeleted:
type: string
example: ''
secretKeyCiphertext:
type: string
example: ''
secretKeyIV:
type: string
example: ''
secretKeyTag:
type: string
example: ''
secretValueCiphertext:
type: string
example: ''
secretValueIV:
type: string
example: ''
secretValueTag:
type: string
example: ''
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: >-
This security definition uses the HTTP 'bearer' scheme, which allows the
client to authenticate using a JSON Web Token (JWT) that is passed in
the Authorization header of the request.
apiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: >-
This security definition uses an API key, which is passed in the header
of the request as the value of the "X-API-Key" header. The client must
provide a valid key in order to access the API.