ToolJet/docs/openapi/scim/index.openapi.yaml
Pratik Agrawal 32b0f7785a
[docs]: OpenAPI for API References (#14531)
* [docs]: OpenAPI for API References

* wip

* scim doc

* update openapi spec

* feedback update
2025-11-20 14:04:07 +05:30

419 lines
No EOL
10 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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'