OpenAPI Specification
openapi: 3.0.1
info:
title: Stardog HTTP Checkpoints Users API
description: "# Overview\nStardog supports the standard SPARQL Protocol HTTP bindings, as well as additional functionality via HTTP.\nStardog also supports SPARQL 1.1’s Service Description format. See the [spec](https://www.w3.org/TR/sparql11-service-description/) if you want details.\n### Generating URLs\nIf you are running the HTTP server at\n\n ```http://localhost:12345```\n\nTo form the URI of a particular Stardog Database, the Database Short Name is the first URL path segment appended to the deployment URI. For example, for the Database called `cytwombly`, deployed in the above example HTTP server, the Database Network Name might be\n\n```http://localhost:12345/cytwombly```\n\nAll the resources related to this database are identified by URL path segments relative to the Database Network Name; hence:\n\n```http://localhost:12345/cytwombly/size```\n# Error Codes\nHere are explanations of what the various error codes mean:\n\nError Code | Category | Meaning\n-----------|----------|---------\n000012 | GENERIC |UNKNOWN\n000IA2 | GENERIC |ILLEGAL_ARGUMENT\n000SD4 | GENERIC |SHUTTING_DOWN\n00PCE2 | GENERIC |PROCESS_CANCELLED\n00PE2 | GENERIC |PROCESS_EXISTS\n00PNE2 | GENERIC |PROCESS_NOT_FOUND\n00UOE2 | GENERIC |UNSUPPORTED_OPERATION\n0D0012 | DATABASE |UNKNOWN_DATABASE_EXCEPTION\n0D0CE3 | DATABASE |DATABASE_CONSISTENCY_EXCEPTION\n0D0DC2 | DATABASE |DATABASE_CONFLICT\n0D0DE2 | DATABASE |DATABASE_EXISTS\n0D0DU2 | DATABASE |DATABASE_UNKNOWN\n0D0TU2 | DATABASE |TRANSACTION_UNKNOWN\n0DICC2 | DATABASE |INVALID_CONFIGURATION\n0DIDN2 | DATABASE |INVALID_DATABASE_NAME\n0DIDS2 | DATABASE |INVALID_DATABASE_STATE\nCLNIC3 | CLUSTER_ERROR |NOT_IN_CLUSTER\nCLOEF3 | CLUSTER_ERROR |EXPEL_FAILED\nHS0012 | HTTP |UNKNOWN_CONNECTION_EXCEPTION\nHSJSE2 | HTTP |JSON_SYNTAX_EXCEPTION\nHSJSO2 | HTTP |JSON_EXCEPTION\nHSSSL3 | HTTP |SSL_EXCEPTION\nQE0012 | QUERY_EXECUTION |UNKNOWN_QUERY_EXCEPTION\nQE0FE2 | QUERY_EXECUTION |FUNCTION_EXISTS\nQE0PE2 | QUERY_EXECUTION |PARSE_EXCEPTION\nQE0QE2 | QUERY_EXECUTION |QUERY_EXISTS\nQECTP2 | QUERY_EXECUTION |CANNOT_TRANSLATE_PLAN\nQEFNF2 | QUERY_EXECUTION |FUNCTION_NOT_FOUND\nQEIQT2 | QUERY_EXECUTION |INVALID_QUERY_TYPE\nQEIVR2 | QUERY_EXECUTION |INVALID_RDF\nQEMAQ2 | QUERY_EXECUTION |MALFORMED_QUERY\nQEONS2 | QUERY_EXECUTION |OPERATION_NOT_SUPPORTED\nQEQNF2 | QUERY_EXECUTION |QUERY_NOT_FOUND\nQEQOE2 | QUERY_EXECUTION |OPERATOR_EXCEPTION\nQEQPE2 | QUERY_EXECUTION |QUERY_PARSE_EXCEPTION\nQEWCE2 | QUERY_EXECUTION |WRITE_CONFLICT_EXCEPTION\nSE0012 | SECURITY |UNKNOWN_SECURITY_EXCEPTION\nSE0IP2 | SECURITY |ILLEGAL_PASSWORD\nSE0RE2 | SECURITY |SECURITY_RESOURCE_EXISTS\nSEAEE2 | SECURITY |AUTHENTICATION_EXCEPTION\nSEAOE2 | SECURITY |AUTHORIZATION_EXCEPTION\nSEIPT2 | SECURITY |INCORRECT_PRINCIPAL_TRANSACTION\nSERIU2 | SECURITY |SECURITY_RESOURCE_IN_USE\nSERNF2 | SECURITY |SECURITY_RESOURCE_NOT_FOUND\nSERNI2 | SECURITY |SECURITY_RESOURCE_NAME_INVALID\nSERTI2 | SECURITY |SECURITY_RESOURCE_TYPE_INVALID\nZK0013 | ZOOKEEPER_ERROR |ZOOKEEPER_UNKNOWN_EXCEPTION\nZK00U3 | ZOOKEEPER_ERROR |UNIMPLEMENTED\nZK0AE3 | ZOOKEEPER_ERROR |API_ERROR\nZK0AF3 | ZOOKEEPER_ERROR |AUTH_FAILED\nZK0BV3 | ZOOKEEPER_ERROR |BAD_VERSION\nZK0CE3 | ZOOKEEPER_ERROR |NO_CHILDREN_FOR_EPHEMERAL\nZK0CL3 | ZOOKEEPER_ERROR |CONNECTION_LOSS\nZK0CR3 | ZOOKEEPER_ERROR |ZOOKEEPER_CONNECTION_REFUSED\nZK0DI3 | ZOOKEEPER_ERROR |DATA_INCONSISTENCY\nZK0IA3 | ZOOKEEPER_ERROR |BAD_ARGUMENTS\nZK0ME3 | ZOOKEEPER_ERROR |MARSHALLING_ERROR\nZK0NA3 | ZOOKEEPER_ERROR |NO_AUTH\nZK0NE3 | ZOOKEEPER_ERROR |NODE_EXISTS\nZK0NN3 | ZOOKEEPER_ERROR |NO_NODE\nZK0OT3 | ZOOKEEPER_ERROR |OPERATION_TIMEOUT\nZK0RI3 | ZOOKEEPER_ERROR |RUNTIME_INCONSISTENCY\nZK0SE3 | ZOOKEEPER_ERROR |SYSTEM_ERROR\nZK0SM3 | ZOOKEEPER_ERROR |SESSION_MOVED\nZKEXS3 | ZOOKEEPER_ERROR |SESSION_EXPIRED\nZKIAL3 | ZOOKEEPER_ERROR |INVALIDACL\nZKICB3 | ZOOKEEPER_ERROR |INVALID_CALLBACK\nZKNEY3 | ZOOKEEPER_ERROR |NOT_EMPTY\nZKNRO3 | ZOOKEEPER_ERROR |NOT_READONLY\n"
contact:
url: https://stardog.com
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0
version: 12.0.3
x-logo:
url: https://d33wubrfki0l68.cloudfront.net/66e9dcff51317cfc11b9f3d4ce2917a11ba81681/543c1/img/stardog-logo-optimized.svg
servers:
- url: http://localhost:5820
tags:
- name: Users
description: Operations on system users
paths:
/admin/users:
get:
tags:
- Users
summary: List users
operationId: listUsers
responses:
'200':
$ref: '#/components/responses/USER_LIST'
post:
tags:
- Users
summary: Add user
operationId: addUser
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/USER_CREATE'
responses:
'201':
description: User created
'400':
$ref: '#/components/responses/MALFORMED_REQUEST_400'
/admin/users/{user}/superuser:
get:
tags:
- Users
summary: User is Superuser
description: Return whether or not a user is a Superuser
operationId: isSuper
parameters:
- name: user
$ref: '#/components/parameters/user'
responses:
'200':
description: Operation successful
content:
application/json:
schema:
$ref: '#/components/schemas/SUPERUSER'
'404':
description: User does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
/admin/users/{user}/enabled:
get:
tags:
- Users
summary: User enabled
description: Return whether or not a user is enabled (active) in the system
operationId: userEnabled
parameters:
- name: user
$ref: '#/components/parameters/user'
responses:
'200':
description: Operation successful
content:
application/json:
schema:
$ref: '#/components/schemas/ENABLED'
'404':
description: User does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
put:
tags:
- Users
summary: Enable/Disable User
operationId: setUserEnabled
parameters:
- name: user
$ref: '#/components/parameters/user'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ENABLED'
required: true
responses:
'200':
description: Flag set
'400':
$ref: '#/components/responses/MALFORMED_REQUEST_400'
'404':
description: User does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
/admin/users/{user}/pwd:
put:
tags:
- Users
summary: Change user's password
operationId: changePassword
parameters:
- name: user
$ref: '#/components/parameters/user'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/USER_PASSWD'
required: true
responses:
'200':
description: Password successfully changed
'400':
$ref: '#/components/responses/MALFORMED_REQUEST_400'
'404':
description: User does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
/admin/users/{user}/roles:
get:
tags:
- Users
summary: Get user's roles
description: Retrieve a list of all roles explicitly assigned to a user
operationId: getUserRoles
parameters:
- name: user
$ref: '#/components/parameters/user'
responses:
'200':
$ref: '#/components/responses/ROLE_LIST'
'404':
description: User does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
put:
tags:
- Users
summary: Set user's roles
description: Overwrite the list of roles explicitly assigned to a user
operationId: setUserRoles
parameters:
- name: user
$ref: '#/components/parameters/user'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ROLE_LIST'
required: true
responses:
'200':
description: Roles successfully updated
'400':
$ref: '#/components/responses/MALFORMED_REQUEST_400'
'404':
description: User does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
post:
tags:
- Users
summary: Add role to user
operationId: addUserRole
parameters:
- name: user
$ref: '#/components/parameters/user'
requestBody:
$ref: '#/components/requestBodies/ROLENAME'
responses:
'204':
description: Role successfully added
'400':
$ref: '#/components/responses/MALFORMED_REQUEST_400'
'404':
description: User does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
/admin/users/{user}/roles/{role}:
delete:
tags:
- Users
summary: Remove role from user
operationId: removeUserRole
parameters:
- name: user
$ref: '#/components/parameters/user'
- name: role
$ref: '#/components/parameters/role'
responses:
'204':
description: Role successfully removed
'404':
description: User/Role does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
/admin/users/{user}/auto_created:
get:
tags:
- Users
summary: User auto-created
description: Return whether a user was auto-created as a result the OAuth jwt authentication process
operationId: userAutoCreated
parameters:
- name: user
$ref: '#/components/parameters/user'
responses:
'200':
description: Operation successful
content:
application/json:
schema:
$ref: '#/components/schemas/AUTO_CREATED'
'404':
description: User does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
/admin/users/list:
get:
tags:
- Users
summary: List users with attributes, roles and permissions
description: Retrieve a detailed list of all users, including their roles, permissions, and status
operationId: listUsersDetailed
responses:
'200':
$ref: '#/components/responses/USER_LIST_DETAILED'
/admin/users/{user}:
get:
tags:
- Users
summary: Get User
description: Retrieve attributes, roles, and permissions of a User
operationId: getUser
parameters:
- name: user
$ref: '#/components/parameters/user'
responses:
'200':
description: Operation successful
content:
application/json:
schema:
$ref: '#/components/schemas/USER'
'404':
description: User does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
delete:
tags:
- Users
summary: Delete User
operationId: deleteUser
parameters:
- name: user
$ref: '#/components/parameters/user'
responses:
'204':
description: User deleted
'404':
description: User does not exist
content:
application/json:
schema:
required:
- message
- code
properties:
message:
type: string
example: User does not exist
code:
type: string
example: SERNF2
components:
parameters:
user:
name: user
in: path
description: Username
required: true
schema:
type: string
role:
name: role
in: path
description: Role name
required: true
schema:
type: string
schemas:
AUTO_CREATED:
required:
- auto_created
properties:
auto_created:
type: boolean
USER_CREATE:
required:
- username
- password
properties:
username:
type: string
password:
type: array
description: Array of chars
items:
maxLength: 1
minLength: 1
type: string
GENERIC_RESPONSE_ERROR_MESSAGE:
required:
- message
properties:
message:
type: string
example: Unexpected end of file [L9]
code:
type: string
example: QEIVR2
PERMISSION_WITH_EXPLICIT:
required:
- action
- resource_type
- resource
properties:
action:
type: string
enum:
- read
- write
- create
- delete
- revoke
- grant
- execute
- all
resource_type:
type: string
enum:
- ALL
- USER
- ROLE
- ROLE_ASSIGNMENT
- PERMISSION
- DATABASE
- DATABASE_EXPORT
- NAMED_GRAPH
- DATA_SOURCE
- VIRTUAL_GRAPH
- DBMS_ADMIN
- DATABASE_METADATA
- DATABASE_ADMIN
- DATABASE_MODELING
- STORED_QUERY
- CACHE
- CACHE_TARGET
- SENSITIVE_PROPERTIES
- ENTITY_RESOLUTION
resource:
type: array
items:
type: string
explicit:
type: boolean
description: Whether this permission is explicitly granted to the user versus granted via a role
USER_PASSWD:
required:
- password
properties:
password:
type: string
SUPERUSER:
required:
- superuser
properties:
superuser:
type: boolean
ROLE_LIST:
required:
- roles
properties:
roles:
type: array
items:
type: string
USER:
required:
- enabled
- superuser
- roles
- permissions
properties:
enabled:
type: boolean
superuser:
type: boolean
roles:
type: array
items:
type: string
permissions:
type: array
items:
$ref: '#/components/schemas/PERMISSION_WITH_EXPLICIT'
ENABLED:
required:
- enabled
properties:
enabled:
type: boolean
USER_LIST:
required:
- users
properties:
users:
type: array
items:
type: string
USER_LIST_DETAILED:
type: array
items:
required:
- username
- enabled
- superuser
- roles
- permissions
properties:
username:
type: string
enabled:
type: boolean
superuser:
type: boolean
roles:
type: array
items:
type: string
permissions:
type: array
items:
$ref: '#/components/schemas/PERMISSION_WITH_EXPLICIT'
ROLENAME:
required:
- rolename
properties:
rolename:
type: string
responses:
MALFORMED_REQUEST_400:
description: Malformed request body
content:
application/json:
schema:
$ref: '#/components/schemas/GENERIC_RESPONSE_ERROR_MESSAGE'
ROLE_LIST:
description: List of Roles in system
content:
application/json:
schema:
$ref: '#/components/schemas/ROLE_LIST'
USER_LIST:
description: List of Users in system
content:
application/json:
schema:
$ref: '#/components/schemas/USER_LIST'
USER_LIST_DETAILED:
description: List of Users in system, including their roles, permissions, and status
content:
application/json:
schema:
$ref: '#/components/schemas/USER_LIST_DETAILED'
requestBodies:
ROLENAME:
content:
application/json:
schema:
$ref: '#/components/schemas/ROLENAME'
externalDocs:
url: https://docs.stardog.com
x-tagGroups:
- name: Data Unification
tags:
- Data Sources
- Virtual Graphs
- name: Virtual Graphs External Compute
tags:
- Virtual Graphs External Compute
- name: Server
tags:
- Monitoring
- Stored Functions
- Server Status/Metrics
- Server Admin
- Queries
- Cluster Admin
- name: Database
tags:
- Checkpoints
- DB Admin
- Integrity Constraints / SHACL
- Data Caching
- Graph Store Protocol
- Matcher, aligning schemas from various data sources
- Reasoning
- Transactions
- GraphQL
- SPARQL
- EntityResolution
- name: Security
tags:
- Roles
- Permissions
- Users
- name: Knowledge Catalog
tags:
- Knowledge Catalog