691 lines
23 KiB
YAML
691 lines
23 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: Budibase API
|
|
description: The public API for Budibase apps and its services.
|
|
version: 1.0.0
|
|
servers:
|
|
- url: http://budibase.app/api/public/v1
|
|
description: Budibase Cloud API
|
|
- url: "{protocol}://{hostname}:10000/api/public/v1"
|
|
description: Budibase self hosted API
|
|
components:
|
|
parameters:
|
|
tableId:
|
|
in: path
|
|
name: tableId
|
|
required: true
|
|
description: The ID of the table which this request is targeting.
|
|
schema:
|
|
type: string
|
|
rowId:
|
|
in: path
|
|
name: rowId
|
|
required: true
|
|
description: The ID of the row which this request is targeting.
|
|
schema:
|
|
type: string
|
|
appId:
|
|
in: header
|
|
name: x-budibase-app-id
|
|
required: true
|
|
description: The ID of the app which this request is targeting.
|
|
schema:
|
|
type: string
|
|
appIdUrl:
|
|
in: path
|
|
name: appId
|
|
required: true
|
|
description: The ID of the app which this request is targeting.
|
|
schema:
|
|
type: string
|
|
queryId:
|
|
in: path
|
|
name: queryId
|
|
required: true
|
|
description: The ID of the query which this request is targeting.
|
|
schema:
|
|
type: string
|
|
userId:
|
|
in: path
|
|
name: userId
|
|
required: true
|
|
description: The ID of the user which this request is targeting.
|
|
schema:
|
|
type: string
|
|
examples:
|
|
application:
|
|
value:
|
|
application:
|
|
_id: app_metadata
|
|
appId: app_dev_957b12f943d348faa61db7e18e088d0f
|
|
version: 1.0.58-alpha.0
|
|
name: App name
|
|
url: /app-url
|
|
tenantId: default
|
|
updatedAt: 2022-02-22T13:00:54.035Z
|
|
createdAt: 2022-02-11T18:02:26.961Z
|
|
status: development
|
|
lockedBy:
|
|
_id: us_693a73206518477283a8d5ae31103252
|
|
email: test@test.com
|
|
roles:
|
|
app_957b12f943d348faa61db7e18e088d0f: BASIC
|
|
builder:
|
|
global: false
|
|
admin:
|
|
global: true
|
|
tenantId: default
|
|
status: active
|
|
budibaseAccess: true
|
|
csrfToken: 9c70291d-7137-48f9-9166-99ab5473a3d4
|
|
userId: us_693a73206518477283a8d5ae31103252
|
|
roleId: ADMIN
|
|
role:
|
|
_id: ADMIN
|
|
name: Admin
|
|
permissionId: admin
|
|
inherits: POWER
|
|
applications:
|
|
value:
|
|
applications:
|
|
- _id: app_metadata
|
|
appId: app_dev_957b12f943d348faa61db7e18e088d0f
|
|
version: 1.0.58-alpha.0
|
|
name: App name
|
|
url: /app-url
|
|
tenantId: default
|
|
updatedAt: 2022-02-22T13:00:54.035Z
|
|
createdAt: 2022-02-11T18:02:26.961Z
|
|
status: development
|
|
lockedBy:
|
|
_id: us_693a73206518477283a8d5ae31103252
|
|
email: test@test.com
|
|
roles:
|
|
app_957b12f943d348faa61db7e18e088d0f: BASIC
|
|
builder:
|
|
global: false
|
|
admin:
|
|
global: true
|
|
tenantId: default
|
|
status: active
|
|
budibaseAccess: true
|
|
csrfToken: 9c70291d-7137-48f9-9166-99ab5473a3d4
|
|
userId: us_693a73206518477283a8d5ae31103252
|
|
roleId: ADMIN
|
|
role:
|
|
_id: ADMIN
|
|
name: Admin
|
|
permissionId: admin
|
|
inherits: POWER
|
|
inputRow:
|
|
value:
|
|
_id: ro_ta_5b1649e42a5b41dea4ef7742a36a7a70_e6dc7e38cf1343b2b56760265201cda4
|
|
type: row
|
|
tableId: ta_5b1649e42a5b41dea4ef7742a36a7a70
|
|
name: Mike
|
|
age: 30
|
|
relationship:
|
|
- ro_ta_...
|
|
row:
|
|
value:
|
|
row:
|
|
_id: ro_ta_5b1649e42a5b41dea4ef7742a36a7a70_e6dc7e38cf1343b2b56760265201cda4
|
|
type: row
|
|
tableId: ta_5b1649e42a5b41dea4ef7742a36a7a70
|
|
name: Mike
|
|
age: 30
|
|
relationship:
|
|
- primaryDisplay: Joe
|
|
_id: ro_ta_...
|
|
rows:
|
|
value:
|
|
rows:
|
|
- _id: ro_ta_5b1649e42a5b41dea4ef7742a36a7a70_e6dc7e38cf1343b2b56760265201cda4
|
|
type: row
|
|
tableId: ta_5b1649e42a5b41dea4ef7742a36a7a70
|
|
name: Mike
|
|
age: 30
|
|
relationship:
|
|
- primaryDisplay: Joe
|
|
_id: ro_ta_...
|
|
hasNextPage: true
|
|
bookmark: 10
|
|
table:
|
|
value:
|
|
table:
|
|
_id: ta_5b1649e42a5b41dea4ef7742a36a7a70
|
|
name: People
|
|
schema:
|
|
name:
|
|
type: string
|
|
name: name
|
|
age:
|
|
type: number
|
|
name: age
|
|
relationship:
|
|
type: link
|
|
name: relationship
|
|
tableId: ta_...
|
|
fieldName: relatedColumn
|
|
relationshipType: many-to-many
|
|
tables:
|
|
value:
|
|
tables:
|
|
- _id: ta_5b1649e42a5b41dea4ef7742a36a7a70
|
|
name: People
|
|
schema:
|
|
name:
|
|
type: string
|
|
name: name
|
|
age:
|
|
type: number
|
|
name: age
|
|
relationship:
|
|
type: link
|
|
name: relationship
|
|
tableId: ta_...
|
|
fieldName: relatedColumn
|
|
relationshipType: many-to-many
|
|
query:
|
|
value:
|
|
query:
|
|
_id: query_datasource_plus_4d8be0c506b9465daf4bf84d890fdab6_454854487c574d45bc4029b1e153219e
|
|
datasourceId: datasource_plus_4d8be0c506b9465daf4bf84d890fdab6
|
|
parameters: []
|
|
fields:
|
|
sql: select * from persons
|
|
queryVerb: read
|
|
name: Help
|
|
schema:
|
|
personid:
|
|
name: personid
|
|
type: string
|
|
lastname:
|
|
name: lastname
|
|
type: string
|
|
firstname:
|
|
name: firstname
|
|
type: string
|
|
address:
|
|
name: address
|
|
type: string
|
|
city:
|
|
name: city
|
|
type: string
|
|
transformer: return data
|
|
readable: true
|
|
queries:
|
|
value:
|
|
queries:
|
|
- _id: query_datasource_plus_4d8be0c506b9465daf4bf84d890fdab6_454854487c574d45bc4029b1e153219e
|
|
datasourceId: datasource_plus_4d8be0c506b9465daf4bf84d890fdab6
|
|
parameters: []
|
|
fields:
|
|
sql: select * from persons
|
|
queryVerb: read
|
|
name: Help
|
|
schema:
|
|
personid:
|
|
name: personid
|
|
type: string
|
|
lastname:
|
|
name: lastname
|
|
type: string
|
|
firstname:
|
|
name: firstname
|
|
type: string
|
|
address:
|
|
name: address
|
|
type: string
|
|
city:
|
|
name: city
|
|
type: string
|
|
transformer: return data
|
|
readable: true
|
|
restResponse:
|
|
value:
|
|
data:
|
|
- value: <html lang='en-GB'></html>
|
|
pagination:
|
|
cursor: "2"
|
|
raw: <html lang='en-GB'></html>
|
|
headers:
|
|
content-type: text/html; charset=ISO-8859-1
|
|
sqlResponse:
|
|
value:
|
|
data:
|
|
- personid: 1
|
|
lastname: Hughes
|
|
firstname: Mike
|
|
address: 123 Fake Street
|
|
city: Belfast
|
|
- personid: 2
|
|
lastname: Smith
|
|
firstname: John
|
|
address: 64 Updown Road
|
|
city: Dublin
|
|
user:
|
|
value:
|
|
user:
|
|
_id: us_693a73206518477283a8d5ae31103252
|
|
email: test@test.com
|
|
roles:
|
|
app_957b12f943d348faa61db7e18e088d0f: BASIC
|
|
builder:
|
|
global: false
|
|
admin:
|
|
global: true
|
|
tenantId: default
|
|
status: active
|
|
budibaseAccess: true
|
|
csrfToken: 9c70291d-7137-48f9-9166-99ab5473a3d4
|
|
userId: us_693a73206518477283a8d5ae31103252
|
|
roleId: ADMIN
|
|
role:
|
|
_id: ADMIN
|
|
name: Admin
|
|
permissionId: admin
|
|
inherits: POWER
|
|
users:
|
|
value:
|
|
users:
|
|
- _id: us_693a73206518477283a8d5ae31103252
|
|
email: test@test.com
|
|
roles:
|
|
app_957b12f943d348faa61db7e18e088d0f: BASIC
|
|
builder:
|
|
global: false
|
|
admin:
|
|
global: true
|
|
tenantId: default
|
|
status: active
|
|
budibaseAccess: true
|
|
csrfToken: 9c70291d-7137-48f9-9166-99ab5473a3d4
|
|
userId: us_693a73206518477283a8d5ae31103252
|
|
roleId: ADMIN
|
|
role:
|
|
_id: ADMIN
|
|
name: Admin
|
|
permissionId: admin
|
|
inherits: POWER
|
|
securitySchemes:
|
|
ApiKeyAuth:
|
|
type: apiKey
|
|
in: header
|
|
name: x-budibase-api-key
|
|
description: Your individual API key, this will provide access based on the
|
|
configured RBAC settings of your user.
|
|
schemas:
|
|
application:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
required: true
|
|
url:
|
|
type: string
|
|
applicationOutput:
|
|
type: object
|
|
properties:
|
|
application:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
required: true
|
|
url:
|
|
type: string
|
|
row:
|
|
description: The row to be created/updated, based on the table schema.
|
|
type: object
|
|
additionalProperties:
|
|
oneOf:
|
|
- type: string
|
|
- type: object
|
|
- type: integer
|
|
- type: array
|
|
- type: boolean
|
|
rowOutput:
|
|
type: object
|
|
properties:
|
|
row:
|
|
description: The row to be created/updated, based on the table schema.
|
|
type: object
|
|
additionalProperties:
|
|
oneOf:
|
|
- type: string
|
|
- type: object
|
|
- type: integer
|
|
- type: array
|
|
- type: boolean
|
|
table:
|
|
description: The table to be created/updated.
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: The name of the table
|
|
type: string
|
|
primaryDisplay:
|
|
type: string
|
|
description: The name of the column which should be used in relationship tags
|
|
when relating to this table.
|
|
schema:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- link
|
|
description: A relationship column.
|
|
constraints:
|
|
type: object
|
|
description: A constraint can be applied to the column which will be validated
|
|
against when a row is saved.
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- string
|
|
- number
|
|
- object
|
|
- boolean
|
|
presence:
|
|
type: boolean
|
|
description: Defines whether the column is required or not.
|
|
name:
|
|
type: string
|
|
description: The name of the column.
|
|
autocolumn:
|
|
type: boolean
|
|
description: Defines whether the column is automatically generated.
|
|
fieldName:
|
|
type: string
|
|
description: The name of the column which a relationship column is related to in
|
|
another table.
|
|
tableId:
|
|
type: string
|
|
description: The ID of the table which a relationship column is related to.
|
|
relationshipType:
|
|
type: string
|
|
enum:
|
|
- one-to-many
|
|
- many-to-one
|
|
- many-to-many
|
|
description: Defines the type of relationship that this column will be used for.
|
|
through:
|
|
type: string
|
|
description: When using a SQL table that contains many to many relationships
|
|
this defines the table the relationships are linked through.
|
|
foreignKey:
|
|
type: string
|
|
description: When using a SQL table that contains a one to many relationship
|
|
this defines the foreign key.
|
|
throughFrom:
|
|
type: string
|
|
description: When using a SQL table that utilises a through table, this defines
|
|
the primary key in the through table for this table.
|
|
throughTo:
|
|
type: string
|
|
description: When using a SQL table that utilises a through table, this defines
|
|
the primary key in the through table for the related table.
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- formula
|
|
description: A formula column.
|
|
constraints:
|
|
type: object
|
|
description: A constraint can be applied to the column which will be validated
|
|
against when a row is saved.
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- string
|
|
- number
|
|
- object
|
|
- boolean
|
|
presence:
|
|
type: boolean
|
|
description: Defines whether the column is required or not.
|
|
name:
|
|
type: string
|
|
description: The name of the column.
|
|
autocolumn:
|
|
type: boolean
|
|
description: Defines whether the column is automatically generated.
|
|
formula:
|
|
type: string
|
|
description: Defines a Handlebars or JavaScript formula to use, note that
|
|
Javascript formulas are expected to be provided in the
|
|
base64 format.
|
|
formulaType:
|
|
type: string
|
|
enum:
|
|
- static
|
|
- dynamic
|
|
description: Defines whether this is a static or dynamic formula.
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- string
|
|
- longform
|
|
- options
|
|
- number
|
|
- boolean
|
|
- array
|
|
- datetime
|
|
- attachment
|
|
- link
|
|
- formula
|
|
- auto
|
|
- json
|
|
- internal
|
|
description: Defines the type of the column, most explain themselves, a link
|
|
column is a relationship.
|
|
constraints:
|
|
type: object
|
|
description: A constraint can be applied to the column which will be validated
|
|
against when a row is saved.
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- string
|
|
- number
|
|
- object
|
|
- boolean
|
|
presence:
|
|
type: boolean
|
|
description: Defines whether the column is required or not.
|
|
name:
|
|
type: string
|
|
description: The name of the column.
|
|
autocolumn:
|
|
type: boolean
|
|
description: Defines whether the column is automatically generated.
|
|
tableOutput:
|
|
type: object
|
|
properties:
|
|
table:
|
|
description: The table to be created/updated.
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: The name of the table
|
|
type: string
|
|
primaryDisplay:
|
|
type: string
|
|
description: The name of the column which should be used in relationship tags
|
|
when relating to this table.
|
|
schema:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- link
|
|
description: A relationship column.
|
|
constraints:
|
|
type: object
|
|
description: A constraint can be applied to the column which will be validated
|
|
against when a row is saved.
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- string
|
|
- number
|
|
- object
|
|
- boolean
|
|
presence:
|
|
type: boolean
|
|
description: Defines whether the column is required or not.
|
|
name:
|
|
type: string
|
|
description: The name of the column.
|
|
autocolumn:
|
|
type: boolean
|
|
description: Defines whether the column is automatically generated.
|
|
fieldName:
|
|
type: string
|
|
description: The name of the column which a relationship column is related to in
|
|
another table.
|
|
tableId:
|
|
type: string
|
|
description: The ID of the table which a relationship column is related to.
|
|
relationshipType:
|
|
type: string
|
|
enum:
|
|
- one-to-many
|
|
- many-to-one
|
|
- many-to-many
|
|
description: Defines the type of relationship that this column will be used for.
|
|
through:
|
|
type: string
|
|
description: When using a SQL table that contains many to many relationships
|
|
this defines the table the relationships are linked
|
|
through.
|
|
foreignKey:
|
|
type: string
|
|
description: When using a SQL table that contains a one to many relationship
|
|
this defines the foreign key.
|
|
throughFrom:
|
|
type: string
|
|
description: When using a SQL table that utilises a through table, this defines
|
|
the primary key in the through table for this table.
|
|
throughTo:
|
|
type: string
|
|
description: When using a SQL table that utilises a through table, this defines
|
|
the primary key in the through table for the related
|
|
table.
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- formula
|
|
description: A formula column.
|
|
constraints:
|
|
type: object
|
|
description: A constraint can be applied to the column which will be validated
|
|
against when a row is saved.
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- string
|
|
- number
|
|
- object
|
|
- boolean
|
|
presence:
|
|
type: boolean
|
|
description: Defines whether the column is required or not.
|
|
name:
|
|
type: string
|
|
description: The name of the column.
|
|
autocolumn:
|
|
type: boolean
|
|
description: Defines whether the column is automatically generated.
|
|
formula:
|
|
type: string
|
|
description: Defines a Handlebars or JavaScript formula to use, note that
|
|
Javascript formulas are expected to be provided in the
|
|
base64 format.
|
|
formulaType:
|
|
type: string
|
|
enum:
|
|
- static
|
|
- dynamic
|
|
description: Defines whether this is a static or dynamic formula.
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- string
|
|
- longform
|
|
- options
|
|
- number
|
|
- boolean
|
|
- array
|
|
- datetime
|
|
- attachment
|
|
- link
|
|
- formula
|
|
- auto
|
|
- json
|
|
- internal
|
|
description: Defines the type of the column, most explain themselves, a link
|
|
column is a relationship.
|
|
constraints:
|
|
type: object
|
|
description: A constraint can be applied to the column which will be validated
|
|
against when a row is saved.
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- string
|
|
- number
|
|
- object
|
|
- boolean
|
|
presence:
|
|
type: boolean
|
|
description: Defines whether the column is required or not.
|
|
name:
|
|
type: string
|
|
description: The name of the column.
|
|
autocolumn:
|
|
type: boolean
|
|
description: Defines whether the column is automatically generated.
|
|
query:
|
|
type: object
|
|
properties: {}
|
|
user:
|
|
type: object
|
|
properties: {}
|
|
userOutput:
|
|
type: object
|
|
properties:
|
|
user:
|
|
type: object
|
|
properties: {}
|
|
nameSearch:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: The name to be used when searching - this will be used in a case
|
|
insensitive starts with match.
|
|
security:
|
|
- ApiKeyAuth: []
|
|
paths: {}
|
|
tags: []
|