mirror of
https://github.com/ToolJet/ToolJet
synced 2026-04-21 21:47:17 +00:00
* [docs]: OpenAPI for API References * wip * scim doc * update openapi spec * feedback update
419 lines
No EOL
10 KiB
YAML
419 lines
No EOL
10 KiB
YAML
openapi: 3.0.3
|
||
info:
|
||
title: ToolJet SCIM API
|
||
version: 1.0.0
|
||
description: >
|
||
ToolJet supports SCIM 2.0 for automated user and group provisioning.
|
||
All standard SCIM endpoints are supported — including `/Schemas`, `/ResourceTypes`, `/Users`, and `/Groups`.
|
||
|
||
servers:
|
||
- url: https://app.tooljet.com/api/scim/v2
|
||
description: Production server
|
||
- url: http://localhost:3000/api/scim/v2
|
||
description: Local development server
|
||
|
||
paths:
|
||
|
||
/Users:
|
||
get:
|
||
summary: List Users
|
||
responses:
|
||
"200":
|
||
description: List of users
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMListResponse'
|
||
post:
|
||
summary: Create User
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMUserRequest'
|
||
responses:
|
||
"201":
|
||
description: User created
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMUserResponse'
|
||
|
||
/Users/{id}:
|
||
get:
|
||
summary: Get User by ID
|
||
parameters:
|
||
- name: id
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: User details
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMUserResponse'
|
||
put:
|
||
summary: Replace User
|
||
parameters:
|
||
- name: id
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMUserRequest'
|
||
responses:
|
||
"200":
|
||
description: Updated user
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMUserResponse'
|
||
patch:
|
||
summary: Patch User
|
||
parameters:
|
||
- name: id
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMPatchRequest'
|
||
responses:
|
||
"200":
|
||
description: User updated
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMUserResponse'
|
||
delete:
|
||
summary: Delete User
|
||
parameters:
|
||
- name: id
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
responses:
|
||
"204":
|
||
description: User deleted
|
||
|
||
/Groups:
|
||
get:
|
||
summary: List Groups
|
||
responses:
|
||
"200":
|
||
description: List of groups
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMGroupListResponse'
|
||
post:
|
||
summary: Create Group
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMGroupRequest'
|
||
responses:
|
||
"201":
|
||
description: Group created
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMGroupResponse'
|
||
|
||
/Groups/{id}:
|
||
get:
|
||
summary: Get Group by ID
|
||
parameters:
|
||
- name: id
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
responses:
|
||
"200":
|
||
description: Group details
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMGroupResponse'
|
||
put:
|
||
summary: Replace Group
|
||
parameters:
|
||
- name: id
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMGroupRequest'
|
||
responses:
|
||
"200":
|
||
description: Group updated
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMGroupResponse'
|
||
patch:
|
||
summary: Patch Group
|
||
parameters:
|
||
- name: id
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMPatchRequest'
|
||
responses:
|
||
"200":
|
||
description: Group updated
|
||
content:
|
||
application/scim+json:
|
||
schema:
|
||
$ref: '#/components/schemas/SCIMGroupResponse'
|
||
delete:
|
||
summary: Delete Group
|
||
parameters:
|
||
- name: id
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
responses:
|
||
"204":
|
||
description: Group deleted
|
||
|
||
components:
|
||
schemas:
|
||
|
||
SCIMUserRequest:
|
||
type: object
|
||
required:
|
||
- schemas
|
||
- userName
|
||
properties:
|
||
schemas:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- "urn:ietf:params:scim:schemas:core:2.0:User"
|
||
- "urn:ietf:params:scim:schemas:extension:tooljet:User:2.0"
|
||
userName:
|
||
type: string
|
||
name:
|
||
type: object
|
||
properties:
|
||
givenName:
|
||
type: string
|
||
familyName:
|
||
type: string
|
||
active:
|
||
type: boolean
|
||
password:
|
||
type: string
|
||
description: User password for creation.
|
||
emails:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
value:
|
||
type: string
|
||
primary:
|
||
type: boolean
|
||
type:
|
||
type: string
|
||
groups:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
value:
|
||
type: string
|
||
display:
|
||
type: string
|
||
meta:
|
||
type: object
|
||
properties:
|
||
resourceType:
|
||
type: string
|
||
urn:ietf:params:scim:schemas:extension:tooljet:User:2.0:
|
||
type: object
|
||
description: ToolJet’s custom SCIM extension (only used in requests)
|
||
properties:
|
||
role:
|
||
type: string
|
||
|
||
SCIMUserResponse:
|
||
type: object
|
||
properties:
|
||
schemas:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- "urn:ietf:params:scim:schemas:core:2.0:User"
|
||
id:
|
||
type: string
|
||
format: uuid
|
||
userName:
|
||
type: string
|
||
name:
|
||
type: object
|
||
properties:
|
||
givenName:
|
||
type: string
|
||
familyName:
|
||
type: string
|
||
active:
|
||
type: boolean
|
||
emails:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
value:
|
||
type: string
|
||
primary:
|
||
type: boolean
|
||
type:
|
||
type: string
|
||
meta:
|
||
type: object
|
||
properties:
|
||
resourceType:
|
||
type: string
|
||
example: "User"
|
||
created:
|
||
type: string
|
||
format: date-time
|
||
lastModified:
|
||
type: string
|
||
format: date-time
|
||
|
||
SCIMListResponse:
|
||
type: object
|
||
properties:
|
||
totalResults:
|
||
type: integer
|
||
startIndex:
|
||
type: integer
|
||
itemsPerPage:
|
||
type: integer
|
||
Resources:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/SCIMUserResponse'
|
||
|
||
SCIMPatchRequest:
|
||
type: object
|
||
required:
|
||
- schemas
|
||
- Operations
|
||
properties:
|
||
schemas:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- "urn:ietf:params:scim:api:messages:2.0:PatchOp"
|
||
Operations:
|
||
type: array
|
||
items:
|
||
type: object
|
||
properties:
|
||
op:
|
||
type: string
|
||
enum: [add, remove, replace]
|
||
path:
|
||
type: string
|
||
value: {}
|
||
|
||
SCIMGroupRequest:
|
||
type: object
|
||
required:
|
||
- schemas
|
||
- displayName
|
||
properties:
|
||
schemas:
|
||
type: array
|
||
items:
|
||
type: string
|
||
example:
|
||
- "urn:ietf:params:scim:schemas:core:2.0:Group"
|
||
displayName:
|
||
type: string
|
||
example: "Developers"
|
||
members:
|
||
type: array
|
||
description: List of User members belonging to this group.
|
||
items:
|
||
type: object
|
||
properties:
|
||
value:
|
||
type: string
|
||
format: uuid
|
||
description: User ID
|
||
display:
|
||
type: string
|
||
description: User display name
|
||
|
||
|
||
SCIMGroupResponse:
|
||
allOf:
|
||
- $ref: '#/components/schemas/SCIMGroupRequest'
|
||
- type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
format: uuid
|
||
meta:
|
||
type: object
|
||
properties:
|
||
resourceType:
|
||
type: string
|
||
example: "Group"
|
||
created:
|
||
type: string
|
||
format: date-time
|
||
lastModified:
|
||
type: string
|
||
format: date-time
|
||
|
||
SCIMGroupListResponse:
|
||
type: object
|
||
properties:
|
||
totalResults:
|
||
type: integer
|
||
startIndex:
|
||
type: integer
|
||
itemsPerPage:
|
||
type: integer
|
||
Resources:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/SCIMGroupResponse' |