ToolJet/docs/openapi/scim/index.openapi.yaml

419 lines
10 KiB
YAML
Raw Normal View History

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: ToolJets 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'