An AppBuilder service - the api endpoint for our AppBuilder Runtime.
See ab_cli
Pull Requests should be tagged with a label major
, minor
or patch
. Use major
for breaking changes, minor
for new features, or patch
for bug fixes. To merge without creating a release a no_release
tag can be added instead.
đź“ť In the pull request body add release notes between these tags:
<!-- #release_notes -->
<!-- /release_notes -->
Anything between those 2 lines will be used as release notes when creating a version.
- A new version will be created using semantic versioning
- The version will be updated in
package.json
- A new tag and release will be created on GitHub
- A new docker image will be built, tagged with the version and published to dockerhub
- A Workflow in
ab_runtime
will be triggered to update the service version file.
It may be useful to build a custom docker image from a feature branch for testing. This can be done through a workflow dispatch trigger.
- Go to the Actions tab
- Select the 'Docker Build Custom' workflow
- Select 'run Workflow' and fill in the form The image will be built from the selected branch and pushed to dockerhub using the given tags
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
viewID | string |
route | |
where | string |
query | optional |
Perform a Count operation on the data managed by a specified ABObject. This returns a count of all the matching rows specified by the {where}
parameter.
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
objID | string |
route | uuid of the ABObject |
where | object |
query | filter conditions to apply before counting |
Name | Type | Description |
---|---|---|
data | object |
|
data.count | number |
count of all the matching rows |
status | string |
|
Perform a Create operation on the data managed by a specified ABObject. This returns a fully populated row value of the newly created entry.
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
objID | string |
route | uuid of the ABObject |
Name | Type | Description |
---|---|---|
data | object |
populated row value of the newly created entry |
status | string |
|
Perform a Create operation on a batch of data managed by a specified ABObject. This returns a fully populated row value of the newly created entry.
NOTE: the incoming data contains an .id value used on the client to identify the entry. This is not part of the data being stored, but a local reference. Our return data references this .id to update the client with the results for that entry.
Name | Type | Location | Description |
---|---|---|---|
objID | string |
route | uuid of the ABObject to add to |
batch | array |
body | records to add |
Name | Type | Description |
---|---|---|
data | object |
|
data.data | object |
entries that added successfully |
data.errors | object |
entries that could not be saved |
status | string |
|
Perform a Delete operation on the data managed by a specified ABObject.
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
objID | string |
route | The uuid of the ABObject that the record to delete belongs to |
ID | string |
route | The uuid of the record to delete |
Name | Type | Description |
---|---|---|
data | object |
|
data.numRows | number |
The # of rows effected by our delete operation |
status | string |
|
Perform a Find operation on the data managed by a specified ABObject.
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
objID | string |
route | The uuid of the ABObject |
where | object |
query | optional filter conditions |
sort | array |
query | optional specify the fields used for sorting |
populate | boolean|array |
query | optional return values with their connections populated? |
offset | number |
query | optional the number of entries to skip. |
limit | number |
query | optional the number of return. |
Name | Type | Description |
---|---|---|
data | object |
|
data.data | array |
all the matching rows |
data.total_count | number |
count of the returned rows (for pagination) |
data.pos | number |
starting position (for pagination) |
data.offset | number |
|
data.limit | number |
|
status | string |
|
Perform an Update operation on the data managed by a specified ABObject. This returns a fully populated row value of the newly created entry.
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
ID | string |
route | uuid of the record |
objID | string |
route | uuid of the ABObject |
...params | any |
body | any values to update, based on the ABObject's columns |
Name | Type | Description |
---|---|---|
data | object |
row value |
status | string |
|
Perform an Update operation on a batch of data managed by a specified ABObject.
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
objID | string |
route | uuid of the ABObject |
rowIds | string[] |
body | uuids of the records to update |
values | object |
body | values to update |
Name | Type | Description |
---|---|---|
status | string |
|
data | boolean |
|
Process the provided login email/password and establish a user session if valid.
Permission: None
Name | Type | Location | Description |
---|---|---|---|
string |
body | user email |
|
password | string |
body | user password |
tenant | string |
body | optional tenant key |
Name | Type | Description |
---|---|---|
data | object |
|
data.user | object |
|
status | string |
|
Start the login workflow based on the tenant's stategy
Permission: None
Clears the session and redirects the user
Permission: None
Name | Type | Description |
---|---|---|
status | string |
|
Name | Type | Description |
---|---|---|
data | object |
|
data.redirect | string |
if using CAS Authentication we send the redirect url for logout |
status | string |
|
This is an Okta callback route to finalize sign on
Permission: None
Name | Type | Description |
---|---|---|
redirect | to / |
Handle an error response from Okta auth
Permission: None
Name | Type | Description |
---|---|---|
Forbidden |
Request an email to be sent to the user's address with a link to reset their password.
Permission: None
Name | Type | Location | Description |
---|---|---|---|
url | string |
body | |
string |
body | user email |
|
tenant | string |
body | optional tenant key |
Name | Type | Description |
---|---|---|
status | string |
|
Authenticate the user with tokens and redirect to the reset password page, used in the reset password emails
Permission: None
Name | Type | Location | Description |
---|---|---|---|
t | string |
query | tenant ID |
a | string |
query | auth token |
Name | Type | Description |
---|---|---|
redirect | redirect to login page |
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
password | string |
body | user password |
Name | Type | Description |
---|---|---|
status | string |
|
Validate a request to switcheroo to another user.
Permission: Switcheroo
- A user with the Switcheroo role
Name | Type | Location | Description |
---|---|---|---|
userID | string |
route | user to switch to |
Name | Type | Description |
---|---|---|
data | object |
|
data.switcherooID | string |
user switched to |
status | string |
|
Remove a switcheroo assignment.
Permission: None
Name | Type | Description |
---|---|---|
data | object |
|
data.success | boolean |
|
status | string |
|
Provide a simple { user:{username} } response if the user is logged in.
Permission: None
Name | Type | Description |
---|---|---|
data | object |
|
data.user | object |
|
status | string |
|
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Description |
---|---|---|
definitions | json |
Check when the server last updated definitions. Used for cache busting /definition/myapps
Permission: none
Name | Type | Description |
---|---|---|
data | number |
the result of |
status | string |
|
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Location | Description |
---|---|---|---|
id | string |
body | a uuid |
name | string |
body | |
type | string |
body | |
json | string |
body |
Name | Type | Description |
---|---|---|
data | object |
complete definition |
status | string |
|
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Location | Description |
---|---|---|---|
ID | string |
route | uuid of the definition |
Name | Type | Description |
---|---|---|
status | string |
|
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Location | Description |
---|---|---|---|
download | number|boolean |
query | optional whether to return the export as a file download |
Name | Type | Description |
---|---|---|
definitions | json |
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Location | Description |
---|---|---|---|
ID | string |
route | uuid of the ABApplication |
download | number|boolean |
query | optional whether to return the export as a file download |
Name | Type | Description |
---|---|---|
definitions | json |
Import definitions from an uploaded json file
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Description |
---|---|---|
status | string |
|
data | object |
|
data.done | boolean |
|
Register for socket updates when definitons change
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Description |
---|---|---|
status | string |
|
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Location | Description |
---|---|---|---|
ID | string |
route | uuid of the definition |
...params | any |
body | any values to update in the definition |
Name | Type | Description |
---|---|---|
status | string |
|
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Location | Description |
---|---|---|---|
applicationUUID | string |
body | |
state | number |
body | States { 0: create the file, 1: tranfer data of those keys, 2: done } Allowed values: 0,1,2 |
date | date |
body | |
data | string |
body | optional |
Name | Type | Description |
---|---|---|
status | string |
|
Permission: none
Name | Type | Description |
---|---|---|
definitions | text/javascript |
script to add the app defintions |
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
ID | string |
route | file uuid |
Name | Type | Description |
---|---|---|
url | redirect |
to the file |
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
ID | string |
route | file uuid |
mobile | boolean |
query | whether to reutrn downscaled images for mobile |
Name | Type | Description |
---|---|---|
data | Object |
|
data.image | string |
base64 |
status | string |
|
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
fieldID | string |
route | |
objID | string |
route | uuid of the ABObject |
isWebix | string |
query | optional |
file_fullpath | string |
query | optional |
Name | Type | Description |
---|---|---|
data | Object |
|
data.uuid | string |
|
data.status | string |
|
status | string |
|
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
objID | uuid |
route | |
fieldID | uuid |
route | |
file | string |
body | |
fileID | uuid |
body | |
fileName | string |
body | |
type | string |
body | |
uploadedBy | string |
body |
Name | Type | Description |
---|---|---|
data | Object |
|
data.uuid | string |
|
status | string |
|
Request a series of log entries for the data managed by a specific ABObject.
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Location | Description |
---|---|---|---|
objID | string |
route | uuid of the ABObject |
rowId | string |
query | optional The specific {row} entry we are looking for |
levelName | string |
query | optional the type of entries Allowed values: insert,update,delete |
username | string |
query | optional entries by a specific username |
startDate | date |
query | optional entries between a specific time frame |
endDate | date |
query | optional entries between a specific time frame |
start | number |
query | optional paging option |
limit | number |
query | optional paging option |
Name | Type | Description |
---|---|---|
data | object[] |
log enteries |
status | string |
|
Respond with the index.html of the Mobile PWA
Permission: None
Name | Type | Location | Description |
---|---|---|---|
appID | string |
route |
Name | Type | Description |
---|---|---|
html | HTML |
Respond with the favicon.png of the Mobile PWA
Permission: None
Name | Type | Description |
---|---|---|
redirects | Redirect |
to the tenant favicon.ico |
Respond with the manifest.json of the Mobile PWA
Permission: None
Name | Type | Description |
---|---|---|
html | HTML |
Respond with the QR code image for a specified app
Permission: None
Name | Type | Description |
---|---|---|
html | HTML |
Respond with the current version # of the provided mobile app
Permission: None
Name | Type | Description |
---|---|---|
data | object |
|
data.version | object |
|
status | string |
|
report a missing label to add to the translations
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
labels | string |
body | JSON string that parses to an array of objects with keys, |
json
- Labels
{ "labels": "[{\"key\":\"example\", \"altText\": \"example\"}]" }
Name | Type | Description |
---|---|---|
status | string |
|
Allows an external approval task to report the task as done to continue the process.
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
task | object |
body | |
task.id | string |
body | id of the external approval task instance |
data | object |
body | optional any data to add to the process context |
Name | Type | Description |
---|---|---|
status | string |
|
Get the inbox tasks for the current user
Permission: User
- Any authenticated user
Name | Type | Description |
---|---|---|
data | Object[] |
process tasks |
status | string |
|
Given a list of process ids, return a consolidated list of application-processes necessary for the UI to create the Inbox accordion
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
ids | string[] |
body | process ids |
Name | Type | Description |
---|---|---|
data | Object[] |
application and process metadata see example |
status | string |
|
[{
"id": "cbf95e19-805b-4793-8d27-56c0c8c9449e",
"translations": [{
"language_code": "en"
"label": "Site Administration",
"description": "Manage access to the web site for our users"
}],
"processes": [
{
"id": "24cb6b33-3ac5-432b-a4ad-c9ae7f12367a",
"translations": [{
"language_code": "en",
"label": "approve new Role"
}]
}
]
}]
Register for socket updates for realtime inbox updates
Permission: User
- Any authenticated user
Name | Type | Description |
---|---|---|
data | string |
"ready" or "sockets not enabled, so no real time updates." |
status | string |
|
Complete an proces task from the inbox
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
ID | string |
route | id of the inbox task |
response | string |
body | response to send to the process |
Name | Type | Description |
---|---|---|
status | string |
|
send a signal to reset a specific process & task. This will cause that task to restart and run again.
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
taskID | string |
route | uuid of the process task |
instanceID | string/string[] |
body | ids of process instances |
Name | Type | Description |
---|---|---|
data | number |
the number of process resets |
status | string |
|
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Location | Description |
---|---|---|---|
ID | string |
route | uuid of a trigger timer |
Name | Type | Description |
---|---|---|
status | string |
|
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Location | Description |
---|---|---|---|
ID | string |
route | uuid of a trigger timer |
Name | Type | Description |
---|---|---|
data | object |
|
data.isRunning | boolean |
|
status | string |
|
Permission: Builder
- A user with either the Builder or System Builder role
Name | Type | Location | Description |
---|---|---|---|
ID | string |
route | uuid of a trigger timer |
Name | Type | Description |
---|---|---|
status | string |
|
Get a QR code to register the PWA
Permission: User
- Any authenticated user
Name | Type | Description |
---|---|---|
image | image/png |
QR Code |
Get a custom report
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
key | string |
route | report to request |
params... | any |
query | additional params as required by the report |
Name | Type | Description |
---|---|---|
content | text/html |
the html report |
Depreciated use /report/well-invoice
Depreciated use /report/well-receipt
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
key | string |
body | Short identifier for the tenant (no spaces) |
title | string |
body | Full Tenant name |
authType | string |
body | Authentication method to use for the tenant's users Allowed values: "login","okta","cas" |
username | string |
body | Username for the new tenant's admin user (will be created) |
password | string |
body | Password for the new admin user |
string |
body | Email of the new admin user |
|
url | string |
body | The tenants domain, must be a valid uri |
Name | Type | Description |
---|---|---|
status | string |
|
These routes are only available when running in test mode.
Import definitions from a file already on the server.
Permission: User
- Any authenticated user
Name | Type | Location | Description |
---|---|---|---|
file | string |
body | path to the file on the server |
Name | Type | Description |
---|---|---|
status | string |
|
data | object |
|
data.done | boolean |
|
Broadcast to other services that they need to update definitions. Useful when we've made a change in the DB directly.
Permission: None
Name | Type | Location | Description |
---|---|---|---|
tenant | string |
body | tenant key |
Name | Type | Description |
---|---|---|
status | string |
|
data | object |
|
data.done | boolean |
|