Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Jans Config Jans Assets API
contact:
name: Contact
url: https://github.com/JanssenProject/jans/discussions
license:
name: License
url: https://github.com/JanssenProject/jans/blob/main/LICENSE
version: OAS Version
servers:
- url: https://jans.local.io
description: The Jans server
tags:
- name: Jans Assets
paths:
/api/v1/jans-assets/{inum}:
get:
tags:
- Jans Assets
summary: Gets an asset by inum - unique identifier
operationId: get-asset-by-inum
parameters:
- name: inum
in: path
description: Asset Inum
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/PagedResult'
examples:
Response example:
description: Response example
value: "{\n \"dn\": \"inum=0b436302-b729-4eb2-b211-335980dcab43,ou=document,o=jans\",\n \"selected\": false,\n \"inum\": \"0b436302-b729-4eb2-b211-335980dcab43\",\n \"displayName\": \"mermaid-extra.css\",\n \"description\": \"/opt/jans/jetty/jans-config-api/\",\n \"document\": \".mermaid {\\r\\n\\toverflow: auto;\\r\\n}\\r\\n\\r\\n.mermaid svg {\\r\\n\\twidth: 1315px;\\r\\n\\theight: 600px;\\r\\n}\\r\\n\",\n \"jansModuleProperty\": [\n \"config-api\",\n \"jar\",\n \"/opt/jans/jetty/jans-config-api/custom/lib\"\n ],\n \"jansLevel\": \"1\",\n \"jansRevision\": \"2\",\n \"jansEnabled\": true,\n \"baseDn\": \"inum=0b436302-b729-4eb2-b211-335980dcab43,ou=document,o=jans\"\n}\n"
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- oauth2:
- https://jans.io/oauth/config/asset.readonly
- oauth2:
- https://jans.io/oauth/config/asset.write
- oauth2:
- https://jans.io/oauth/config/asset.admin
- oauth2:
- https://jans.io/oauth/config/read-all
- oauth2:
- https://jans.io/oauth/config/write-all
delete:
tags:
- Jans Assets
summary: Delete an asset
operationId: delete-asset
parameters:
- name: inum
in: path
description: Asset identifier
required: true
schema:
type: string
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- oauth2:
- https://jans.io/oauth/config/asset.delete
- oauth2:
- https://jans.io/oauth/config/asset.admin
- oauth2:
- https://jans.io/oauth/config/delete-all
/api/v1/jans-assets/name/{name}:
get:
tags:
- Jans Assets
summary: Fetch asset by name
description: Fetch asset by name.
operationId: get-asset-by-name
parameters:
- name: name
in: path
description: Asset Name
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentPagedResult'
examples:
Response example:
description: Response example
value: ''
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- oauth2:
- https://jans.io/oauth/config/asset.readonly
- oauth2:
- https://jans.io/oauth/config/asset.write
- oauth2:
- https://jans.io/oauth/config/asset.admin
- oauth2:
- https://jans.io/oauth/config/read-all
- oauth2:
- https://jans.io/oauth/config/write-all
/api/v1/jans-assets/asset-dir-mapping:
get:
tags:
- Jans Assets
summary: Get valid asset types
operationId: get-asset-dir-mapping
responses:
'200':
description: Ok
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AssetDirMapping'
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- oauth2:
- https://jans.io/oauth/config/asset.readonly
- oauth2:
- https://jans.io/oauth/config/asset.write
- oauth2:
- https://jans.io/oauth/config/asset.admin
- oauth2:
- https://jans.io/oauth/config/read-all
- oauth2:
- https://jans.io/oauth/config/write-all
/api/v1/jans-assets:
get:
tags:
- Jans Assets
summary: Gets all Jans assets
description: Gets all Jans assets.
operationId: get-all-assets
parameters:
- name: limit
in: query
description: Search size - max size of the results to return
schema:
type: integer
format: int32
default: 50
- name: pattern
in: query
description: Search pattern
schema:
type: string
default: ''
- name: status
in: query
description: Status of the attribute
schema:
type: string
default: all
- name: startIndex
in: query
description: The 1-based index of the first query result
schema:
type: integer
format: int32
default: 0
- name: sortBy
in: query
description: Attribute whose value will be used to order the returned response
schema:
type: string
default: inum
- name: sortOrder
in: query
description: Order in which the sortBy param is applied. Allowed values are "ascending" and "descending"
schema:
type: string
default: ascending
- name: fieldValuePair
in: query
description: Field and value pair for seraching
schema:
type: string
default: ''
examples:
Field value example:
description: Field value example
value: adminCanEdit=true,dataType=string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentPagedResult'
examples:
Response example:
description: Response example
value: "{\n \"start\": 0,\n \"totalEntriesCount\": 2,\n \"entriesCount\": 2,\n \"entries\": [\n {\n \"dn\": \"inum=0b436302-b729-4eb2-b211-335980dcab43,ou=document,o=jans\",\n \"selected\": false,\n \"inum\": \"0b436302-b729-4eb2-b211-335980dcab43\",\n \"displayName\": \"mermaid-extra.css\",\n \"description\": \"/opt/jans/jetty/jans-config-api/\",\n \"document\": \".mermaid {\\r\\n\\toverflow: auto;\\r\\n}\\r\\n\\r\\n.mermaid svg {\\r\\n\\twidth: 1315px;\\r\\n\\theight: 600px;\\r\\n}\\r\\n\",\n \"jansModuleProperty\": [\n \"config-api\",\n \"jar\",\n \"/opt/jans/jetty/jans-config-api/custom/lib\"\n ],\n \"jansLevel\": \"1\",\n \"jansRevision\": \"2\",\n \"jansEnabled\": true,\n \"baseDn\": \"inum=0b436302-b729-4eb2-b211-335980dcab43,ou=document,o=jans\"\n },\n {\n \"dn\": \"inum=9d2f39f5-a910-4a03-a888-6f0f1ee03445,ou=document,o=jans\",\n \"selected\": false,\n \"inum\": \"9d2f39f5-a910-4a03-a888-6f0f1ee03445\",\n \"displayName\": \"saml-plugin.jar\",\n \"description\": \"/opt/jans/jetty/jans-config-api/\",\n \"creationDate\": \"2024-03-14T12:53:00\",\n \"jansModuleProperty\": [\n \"config-api\",\n \"jar\",\n \"/opt/jans/jetty/jans-config-api/custom/lib\"\n ],\n \"jansEnabled\": true,\n \"baseDn\": \"inum=9d2f39f5-a910-4a03-a888-6f0f1ee03445,ou=document,o=jans\"\n }\n ]\n}\n"
'401':
description: Unauthorized
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- oauth2:
- https://jans.io/oauth/config/asset.readonly
- oauth2:
- https://jans.io/oauth/config/asset.write
- oauth2:
- https://jans.io/oauth/config/asset.admin
- oauth2:
- https://jans.io/oauth/config/read-all
- oauth2:
- https://jans.io/oauth/config/write-all
/api/v1/jans-assets/services:
get:
tags:
- Jans Assets
summary: Gets asset services
operationId: get-asset-services
responses:
'200':
description: Ok
content:
application/json:
schema:
type: array
items:
type: string
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- oauth2:
- https://jans.io/oauth/config/asset.readonly
- oauth2:
- https://jans.io/oauth/config/asset.write
- oauth2:
- https://jans.io/oauth/config/asset.admin
- oauth2:
- https://jans.io/oauth/config/read-all
- oauth2:
- https://jans.io/oauth/config/write-all
/api/v1/jans-assets/asset-type:
get:
tags:
- Jans Assets
summary: Get valid asset types
operationId: get-asset-types
responses:
'200':
description: Ok
content:
application/json:
schema:
type: array
items:
type: string
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- oauth2:
- https://jans.io/oauth/config/asset.readonly
- oauth2:
- https://jans.io/oauth/config/asset.write
- oauth2:
- https://jans.io/oauth/config/asset.admin
- oauth2:
- https://jans.io/oauth/config/read-all
- oauth2:
- https://jans.io/oauth/config/write-all
/api/v1/jans-assets/service/{service-name}:
post:
tags:
- Jans Assets
summary: Load assets on server for a service
operationId: load-service-asset
parameters:
- name: service-name
in: path
description: Service Name
required: true
schema:
type: string
requestBody:
description: String multipart form.
content:
multipart/form-data:
schema:
type: string
responses:
'200':
description: Asset file loaded
content:
application/json:
schema:
type: string
examples:
Response json example:
description: Response json example
value: ''
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- oauth2:
- https://jans.io/oauth/config/asset.write
- oauth2:
- https://jans.io/oauth/config/asset.admin
- oauth2:
- https://jans.io/oauth/config/write-all
/api/v1/jans-assets/upload:
put:
tags:
- Jans Assets
summary: Update existing asset
operationId: put-asset
requestBody:
description: String multipart form.
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/AssetForm'
examples:
Response json example:
description: Response json example
value: "{\n \"dn\": \"inum=ed901270-c0cd-43cf-a683-10795ff66349,ou=document,o=jans\",\n \"selected\": false,\n \"inum\": \"ed901270-c0cd-43cf-a683-10795ff66349\",\n \"displayName\": \"janssen_dove_icon.png\",\n \"description\": \"/opt/jans/jetty/jans-auth/custom/static\",\n\t\"jansModuleProperty\": [\n \"agama\",\n \"img\",\n \"/opt/jans/jetty/jans-auth\"\n ],\n \"jansLevel\": \"1\",\n \"jansRevision\": \"2\",\n \"jansEnabled\": true,\n \"baseDn\": \"inum=ed901270-c0cd-43cf-a683-10795ff66349,ou=document,o=jans\"\n}\n"
responses:
'200':
description: Modified Asset
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/Document'
examples:
Response json example:
description: Response json example
value: "{\n \"dn\": \"inum=ed901270-c0cd-43cf-a683-10795ff66349,ou=document,o=jans\",\n \"selected\": false,\n \"inum\": \"ed901270-c0cd-43cf-a683-10795ff66349\",\n \"displayName\": \"janssen_dove_icon.png\",\n \"description\": \"/opt/jans/jetty/jans-auth/custom/static\",\n\t\"jansModuleProperty\": [\n \"agama\",\n \"img\",\n \"/opt/jans/jetty/jans-auth\"\n ],\n \"jansLevel\": \"1\",\n \"jansRevision\": \"2\",\n \"jansEnabled\": true,\n \"baseDn\": \"inum=ed901270-c0cd-43cf-a683-10795ff66349,ou=document,o=jans\"\n}\n"
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- oauth2:
- https://jans.io/oauth/config/asset.write
- oauth2:
- https://jans.io/oauth/config/asset.admin
- oauth2:
- https://jans.io/oauth/config/write-all
post:
tags:
- Jans Assets
summary: Upload new asset
operationId: post-new-asset
requestBody:
description: String multipart form.
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/AssetForm'
examples:
Response json example:
description: Response json example
value: "{\n \"displayName\": \"saml-plugin.jar\",\n \"description\": \"Config api pligin\",\n \"document\":\"\",\n \"jansModuleProperty\": [\n\t\t\"config-api\",\n\t\t\"jar\",\n\t\t\"/opt/jans/jetty/jans-config-api/custom/lib\"\n\t],\t\n \"jansLevel\": \"1\",\n \"jansRevision\": \"1\",\n \"jansEnabled\": true\n}\n"
responses:
'201':
description: Newly created Asset
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/Document'
examples:
Response json example:
description: Response json example
value: "{\n \"displayName\": \"saml-plugin.jar\",\n \"description\": \"Config api pligin\",\n \"document\":\"\",\n \"jansModuleProperty\": [\n\t\t\"config-api\",\n\t\t\"jar\",\n\t\t\"/opt/jans/jetty/jans-config-api/custom/lib\"\n\t],\t\n \"jansLevel\": \"1\",\n \"jansRevision\": \"1\",\n \"jansEnabled\": true\n}\n"
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- oauth2:
- https://jans.io/oauth/config/asset.write
- oauth2:
- https://jans.io/oauth/config/asset.admin
- oauth2:
- https://jans.io/oauth/config/write-all
components:
schemas:
PagedResult:
type: object
properties:
start:
type: integer
format: int32
totalEntriesCount:
type: integer
format: int32
entriesCount:
type: integer
format: int32
entries:
type: array
items:
type: object
ApiError:
type: object
properties:
code:
type: string
message:
type: string
description:
type: string
AssetForm:
required:
- assetFile
- document
type: object
properties:
document:
$ref: '#/components/schemas/Document'
assetFile:
type: string
format: binary
AssetDirMapping:
type: object
properties:
directory:
type: string
description: Relative path to asset base directory.
type:
type: array
description: List of file extention that are stored in directory.
items:
type: string
description: List of file extention that are stored in directory.
description:
type: string
description: Description of assets stored in directory.
jansServiceModule:
type: array
description: List of supported service module where asset can be uploaded.
items:
type: string
description: List of supported service module where asset can be uploaded.
description: Asset type mapped to server directory.
DocumentPagedResult:
type: object
properties:
start:
type: integer
format: int32
totalEntriesCount:
type: integer
format: int32
entriesCount:
type: integer
format: int32
entries:
type: array
items:
$ref: '#/components/schemas/Document'
Document:
type: object
properties:
dn:
type: string
inum:
type: string
fileName:
type: string
filePath:
type: string
description:
type: string
document:
type: string
creationDate:
type: string
format: date-time
service:
type: string
level:
type: integer
format: int32
revision:
type: integer
format: int32
enabled:
type: boolean
baseDn:
type: string
securitySchemes:
oauth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://{op-hostname}/.../token
scopes:
https://jans.io/oauth/jans-auth-server/config/properties.readonly: View Auth Server properties related information
https://jans.io/oauth/jans-auth-server/config/properties.write: Manage Auth Server properties related information
https://jans.io/oauth/config/attributes.readonly: View attribute related information
https://jans.io/oauth/config/attributes.write: Manage attribute related information
https://jans.io/oauth/config/attributes.delete: Delete attribute related information
https://jans.io/oauth/config/acrs.readonly: View ACRS related information
https://jans.io/oauth/config/acrs.write: Manage ACRS related information
https://jans.io/oauth/config/database/ldap.readonly: View LDAP database related information
https://jans.io/oauth/config/database/ldap.write: Manage LDAP database related information
https://jans.io/oauth/config/database/ldap.delete: Delete LDAP database related information
https://jans.io/oauth/config/scripts.readonly: View cache scripts information
https://jans.io/oauth/config/scripts.write: Manage scripts related information
https://jans.io/oauth/config/scripts.delete: Delete scripts related information
https://jans.io/oauth/config/cache.readonly: View cache related information
https://jans.io/oauth/config/cache.write: Manage cache related information
https://jans.io/oauth/config/smtp.readonly: View SMTP related information
https://jans.io/oauth/config/smtp.write: Manage SMTP related information
https://jans.io/oauth/config/smtp.delete: Delete SMTP related information
https://jans.io/oauth/config/logging.readonly: View logging related information
https://jans.io/oauth/config/logging.write: Manage logging related information
https://jans.io/oauth/config/jwks.readonly: View JWKS related information
https://jans.io/oauth/config/jwks.write: Manage JWKS related information
https://jans.io/oauth/config/jwks.delete: Delete JWKS related information
https://jans.io/oauth/config/openid/clients.readonly: View clients related information
https://jans.io/oauth/config/openid/clients.write: Manage clients related information
https://jans.io/oauth/config/openid/clients.delete: Delete clients related information
https://jans.io/oauth/config/scopes.readonly: View scope related information
https://jans.io/oauth/config/scopes.write: Manage scope related information
https://jans.io/oauth/config/scopes.delete: Delete scope related information
https://jans.io/oauth/config/stats.readonly: View server with basic statistic
https://jans.io/oauth/config/organization.readonly: View organization configuration information
https://jans.io/oauth/config/organization.write: Manage organization configuration information
https://jans.io/oauth/config/agama.readonly: View Agama Flow related information
https://jans.io/oauth/config/agama.write: Manage Agama Flow related information
https://jans.io/oauth/config/agama.delete: Delete Agama Flow related information
https://jans.io/oauth/jans-auth-server/session.readonly: View Session related information
https://jans.io/oauth/jans-auth-server/session.delete: Delete Session information
https://jans.io/oauth/config/read-all: Super admin read access to all configuration resources
https://jans.io/oauth/config/write-all: Super admin write access to all configuration resources
https://jans.io/oauth/config/delete-all: Super admin delete access to all configuration resources
https://jans.io/oauth/config/openid/openid.readonly: View OpenID functionality
https://jans.io/oauth/config/openid/openid.write: Manage OpenID functionality
https://jans.io/oauth/config/openid/openid.delete: Delete OpenID functionality
https://jans.io/oauth/config/uma.readonly: View UMA functionality
https://jans.io/oauth/config/uma.write: Manage UMA functionality
https://jans.io/oauth/config/uma.delete: Delete UMA functionality
https://jans.io/oauth/config/plugin.readonly: View Plugin information
https://jans.io/oauth/config/properties.readonly: View Config-API related configuration properties
https://jans.io/oauth/config/properties.write: Manage Config-API related configuration properties
https://jans.io/oauth/client/authorizations.readonly: View ClientAuthorizations
https://jans.io/oauth/client/authorizations.delete: Revoke ClientAuthorizations
https://jans.io/oauth/config/asset.readonly: View Jans Assets
https://jans.io/oauth/config/asset.write: Manage Jans Assets
https://jans.io/oauth/config/asset.delete: Delete Jans Assets
https://jans.io/oauth/config/token.readonly: View Token details
https://jans.io/oauth/config/token.write: Manage Token details
https://jans.io/oauth/config/token.delete: Delete Token details
https://jans.io/oauth/config/data.readonly: View Config-API related data
https://jans.io/oauth/config/ssa.readonly: View SSA details
https://jans.io/oauth/config/ssa.write: Manage SSA details
https://jans.io/oauth/config/ssa.delete: Delete SSA details
https://jans.io/oauth/jans-auth-server/config/properties.admin: Admin scope for Auth Server properties
https://jans.io/oauth/config/attributes.admin: Admin for Attribute management
https://jans.io/oauth/config/acrs.admin: Admin for ACRS management
https://jans.io/oauth/config/database.admin: Admin for Database config management
https://jans.io/oauth/config/scripts.admin: Admin for Scripts management
https://jans.io/oauth/config/cache.admin: Admin for Cache management
https://jans.io/oauth/config/message.admin: Admin for Message management
https://jans.io/oauth/config/smtp.admin: Admin for SMTP management
https://jans.io/oauth/config/logging.admin: Admin for Logging management
https://jans.io/oauth/config/jwks.admin: Admin for JWKS management
https://jans.io/oauth/config/openid/clients.admin: Admin for clients management
https://jans.io/oauth/config/token.admin: Admin for Token management
https://jans.io/oauth/config/scopes.admin: Admin for scope management
https://jans.io/oauth/config/stats.admin: Admin for statistic management
https://jans.io/oauth/config/organization.admin: Admin for organization configuration management
https://jans.io/oauth/config/agama.admin: Admin for Agama flow management
https://jans.io/oauth/jans-auth-server/session.admin: Admin for Session management
https://jans.io/oauth/config/uma.admin: Admin for UMA management
https://jans.io/oauth/config/plugin.admin: Admin for Plugin management
https://jans.io/oauth/config/properties.admin: Admin for Config-API management
https://jans.io/oauth/client/authorizations.admin: Admin for Client Authorizations management
https://jans.io/oauth/config/asset.admin: Admin for Jans Assets management
https://jans.io/auth/ssa.admin: Admin for SSA management
https://jans.io/oauth/config/health.admin: Admin for Health API management