28ddeb124f
* basic user sync Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add group sync and some refactor Signed-off-by: Jens Langhammer <jens@goauthentik.io> * start API Signed-off-by: Jens Langhammer <jens@goauthentik.io> * allow null authorization flow Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add UI Signed-off-by: Jens Langhammer <jens@goauthentik.io> * make task monitored Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add missing dependency Signed-off-by: Jens Langhammer <jens@goauthentik.io> * make authorization_flow required for most providers via API Signed-off-by: Jens Langhammer <jens@goauthentik.io> * more UI Signed-off-by: Jens Langhammer <jens@goauthentik.io> * make task result better readable, exclude anonymous user Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add task UI Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add scheduled task for all sync Signed-off-by: Jens Langhammer <jens@goauthentik.io> * make scim errors more readable Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add mappings, migrate to mappings Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add mapping UI and more Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add scim docs to web Signed-off-by: Jens Langhammer <jens@goauthentik.io> * start implementing membership Signed-off-by: Jens Langhammer <jens@goauthentik.io> * migrate signals to tasks Signed-off-by: Jens Langhammer <jens@goauthentik.io> * migrate fully to tasks Signed-off-by: Jens Langhammer <jens@goauthentik.io> * strip none keys, fix lint errors Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix things Signed-off-by: Jens Langhammer <jens@goauthentik.io> * start adding tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix saml Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add scim schemas and validate against it Signed-off-by: Jens Langhammer <jens@goauthentik.io> * improve error handling Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add group put support, add group tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * send correct application/scim+json headers Signed-off-by: Jens Langhammer <jens@goauthentik.io> * stop sync if no mappings are confiugred Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add test for task sync Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add membership tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * use decorator for tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * make tests better Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
175 lines
8.1 KiB
JSON
175 lines
8.1 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema",
|
|
"$id": "http://example.com/example.json",
|
|
"type": "object",
|
|
"title": "authentik Blueprint schema",
|
|
"default": {},
|
|
"required": [
|
|
"version",
|
|
"entries"
|
|
],
|
|
"properties": {
|
|
"version": {
|
|
"$id": "#/properties/version",
|
|
"type": "integer",
|
|
"title": "Blueprint version",
|
|
"default": 1
|
|
},
|
|
"metadata": {
|
|
"$id": "#/properties/metadata",
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"labels": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"context": {
|
|
"$id": "#/properties/context",
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
},
|
|
"entries": {
|
|
"type": "array",
|
|
"items": {
|
|
"$id": "#entry",
|
|
"type": "object",
|
|
"required": [
|
|
"model"
|
|
],
|
|
"properties": {
|
|
"model": {
|
|
"type": "string",
|
|
"enum": [
|
|
"authentik_blueprints.blueprintinstance",
|
|
"authentik_blueprints.metaapplyblueprint",
|
|
"authentik_core.application",
|
|
"authentik_core.group",
|
|
"authentik_core.token",
|
|
"authentik_core.user",
|
|
"authentik_crypto.certificatekeypair",
|
|
"authentik_events.event",
|
|
"authentik_events.notification",
|
|
"authentik_events.notificationrule",
|
|
"authentik_events.notificationtransport",
|
|
"authentik_events.notificationwebhookmapping",
|
|
"authentik_flows.flow",
|
|
"authentik_flows.flowstagebinding",
|
|
"authentik_outposts.dockerserviceconnection",
|
|
"authentik_outposts.kubernetesserviceconnection",
|
|
"authentik_outposts.outpost",
|
|
"authentik_policies.policybinding",
|
|
"authentik_policies_dummy.dummypolicy",
|
|
"authentik_policies_event_matcher.eventmatcherpolicy",
|
|
"authentik_policies_expiry.passwordexpirypolicy",
|
|
"authentik_policies_expression.expressionpolicy",
|
|
"authentik_policies_password.passwordpolicy",
|
|
"authentik_policies_reputation.reputation",
|
|
"authentik_policies_reputation.reputationpolicy",
|
|
"authentik_providers_ldap.ldapprovider",
|
|
"authentik_providers_oauth2.accesstoken",
|
|
"authentik_providers_oauth2.authorizationcode",
|
|
"authentik_providers_oauth2.oauth2provider",
|
|
"authentik_providers_oauth2.refreshtoken",
|
|
"authentik_providers_oauth2.scopemapping",
|
|
"authentik_providers_proxy.proxyprovider",
|
|
"authentik_providers_saml.samlpropertymapping",
|
|
"authentik_providers_saml.samlprovider",
|
|
"authentik_providers_scim.scimmapping",
|
|
"authentik_providers_scim.scimprovider",
|
|
"authentik_sources_ldap.ldappropertymapping",
|
|
"authentik_sources_ldap.ldapsource",
|
|
"authentik_sources_oauth.oauthsource",
|
|
"authentik_sources_oauth.useroauthsourceconnection",
|
|
"authentik_sources_plex.plexsource",
|
|
"authentik_sources_plex.plexsourceconnection",
|
|
"authentik_sources_saml.samlsource",
|
|
"authentik_sources_saml.usersamlsourceconnection",
|
|
"authentik_stages_authenticator_duo.authenticatorduostage",
|
|
"authentik_stages_authenticator_duo.duodevice",
|
|
"authentik_stages_authenticator_sms.authenticatorsmsstage",
|
|
"authentik_stages_authenticator_sms.smsdevice",
|
|
"authentik_stages_authenticator_static.authenticatorstaticstage",
|
|
"authentik_stages_authenticator_totp.authenticatortotpstage",
|
|
"authentik_stages_authenticator_validate.authenticatorvalidatestage",
|
|
"authentik_stages_authenticator_webauthn.authenticatewebauthnstage",
|
|
"authentik_stages_authenticator_webauthn.webauthndevice",
|
|
"authentik_stages_captcha.captchastage",
|
|
"authentik_stages_consent.consentstage",
|
|
"authentik_stages_consent.userconsent",
|
|
"authentik_stages_deny.denystage",
|
|
"authentik_stages_dummy.dummystage",
|
|
"authentik_stages_email.emailstage",
|
|
"authentik_stages_identification.identificationstage",
|
|
"authentik_stages_invitation.invitation",
|
|
"authentik_stages_invitation.invitationstage",
|
|
"authentik_stages_password.passwordstage",
|
|
"authentik_stages_prompt.prompt",
|
|
"authentik_stages_prompt.promptstage",
|
|
"authentik_stages_user_delete.userdeletestage",
|
|
"authentik_stages_user_login.userloginstage",
|
|
"authentik_stages_user_logout.userlogoutstage",
|
|
"authentik_stages_user_write.userwritestage",
|
|
"authentik_tenants.tenant"
|
|
]
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"state": {
|
|
"type": "string",
|
|
"enum": [
|
|
"absent",
|
|
"present",
|
|
"created"
|
|
],
|
|
"default": "present"
|
|
},
|
|
"conditions": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"attrs": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Commonly available field, may not exist on all models"
|
|
}
|
|
},
|
|
"default": {},
|
|
"additionalProperties": true
|
|
},
|
|
"identifiers": {
|
|
"type": "object",
|
|
"default": {},
|
|
"properties": {
|
|
"pk": {
|
|
"description": "Commonly available field, may not exist on all models",
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string",
|
|
"format": "uuid"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|