mirror of
https://github.com/ToolJet/ToolJet
synced 2026-04-21 21:47:17 +00:00
419 lines
10 KiB
YAML
419 lines
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'
|