mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-18 05:52:51 +00:00
## Todos for release - [x] Configure Env in docs project on vercel - [x] Configure Root Path in the docs project on vercel - [ ] Remove old CSP https://github.com/zitadel/website/pull/1592 ## What we did This pull request migrates the project documentation from the old `docs/` directory to the new `apps/docs/` directory, introduces a new documentation system built with Next.js and Fumadocs, and updates all relevant references, configuration files, and documentation to reflect this change. It also adds new configuration and ignore files for the new documentation app, updates CI and linting to exclude the new docs from certain checks, and revises the contributing guidelines accordingly. **Documentation System Migration and New Docs App** * Migrated all documentation from `docs/` to `apps/docs/`, and updated all references in `README.md`, `CONTRIBUTING.md`, and other files to point to the new location. [[1]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L585-L640) [[2]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L660-R607) [[3]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L740-R687) [[4]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L2-R3) [[5]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L30-R30) * Added a new Next.js/Fumadocs-based documentation app under `apps/docs/`, including core app files, layouts, routing, search API, and a comprehensive `README.md` with development and contribution instructions. [[1]](diffhunk://#diff-5a1b07344a2c1b4d3f37b23ff1388b62cd9f57dea3c1cd23d8a0412b7602b132R1-R74) [[2]](diffhunk://#diff-462b9ad1eabbb7d1c29bb9c36e4931eb180fd7190900e6d2babf8f4d66ad1c28R1-R39) [[3]](diffhunk://#diff-e16ae25660ded787b10ac35dea96d5ecaacf895dae0afc8a9bd4382dc79a8c87R1-R7) [apps/docs/app/[[...slug]]/layout.tsxR1-R81](diffhunk://#diff-59e08acde4e805b7aeccef1dcf98f1d71dfc550777e6b9402085cee0e9fa4e0aR1-R81), [apps/docs/app/[[...slug]]/page.tsxR1-R79](diffhunk://#diff-e5df3f80d0fa01e12d63d81f29c57a9d14e846c78fd3beabb2ef768e38fd9580R1-R79), [[4]](diffhunk://#diff-389b34918e040cacaa87cd7201ffa462cc2b0b716736f537e3d3c660ac69353bR1-R7) [[5]](diffhunk://#diff-d3b03416d1c457b19f1c27b26f2db741412df841b875c26ccadc36e4522247f4R1-R29) [[6]](diffhunk://#diff-c8fb8339570a5305809be7c618e14705fd86390dc278e6ce8ba224a7bc8b0c3cR1-R25) **Configuration and Tooling Updates** * Updated `.github/workflows/codeql.yml`, `.golangci.yaml`, and `.github/dependabot.yml` to properly handle the new docs app: excluded `apps/docs` from certain checks, added npm dependency updates for the docs app, and excluded generated content. [[1]](diffhunk://#diff-12783128521e452af0cfac94b99b8d250413c516ec71fe6d97dbea666ff7ba27L8-R14) [[2]](diffhunk://#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5R5-R6) [[3]](diffhunk://#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5R126-R129) [[4]](diffhunk://#diff-dd4fbda47e51f1e35defb9275a9cd9c212ecde0b870cba89ddaaae65c5f3cd28R89-R106) * Updated `.devcontainer/devcontainer.json` to use the latest Go 1.25.3 version for consistency. **Licensing and Miscellaneous** * Added `apps/docs/` to the list of licensed directories in `LICENSING.md`. These changes ensure the documentation is now maintained in a modern, scalable system and all project tooling is updated to support the new structure. --------- Co-authored-by: Federico Coppede <[email protected]>
348 lines
9.8 KiB
Plaintext
348 lines
9.8 KiB
Plaintext
---
|
|
title: Code examples
|
|
---
|
|
|
|
Actions are a powerful tool to extend ZITADEL and you might wonder what use cases actions can be used for.
|
|
|
|
This page provides a non-exhaustive list of possibilities which is provided by [examples](https://github.com/zitadel/actions/tree/main/examples). If a use case is missing feel free to contribute an issue or pull request to the repository, thanks in advance 🤗.
|
|
|
|
## Customize OIDC response
|
|
|
|
Append claims returned on OIDC requests.
|
|
|
|
### Triggers
|
|
|
|
- Complement token
|
|
- [Pre Userinfo creation](./complement-token#pre-userinfo-creation-id-token-userinfo-introspection-endpoint)
|
|
- [Pre access token creation](./complement-token#pre-access-token-creation)
|
|
|
|
### Set hardcoded claim
|
|
|
|
Extend the claims by a hardcoded value.
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/add_claim.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Set dynamic claim from user metadata
|
|
|
|
Extend the claims by dynamically read metadata from a user and sets the picture-claim if idpPicture-metadata value is present.
|
|
|
|
<details open="">
|
|
<summary>{props.summary ? props.summary : 'Code example'}</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/add_picture_claim_from_idp_metadata.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Set dynamic claim from organization metadata
|
|
|
|
Extend the claims by dynamically read metadata from an organization and sets the present metadata.
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/org_metadata_claim.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Custom role mapping in claims
|
|
|
|
Some products require specific role mapping from ZITADEL, no worries we got you covered 😉
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/custom_roles.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Custom role mapping including org metadata in claims
|
|
|
|
There's even a possibility to use the metadata of organizations the user is granted to
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/custom_roles_org_metadata.js
|
|
```
|
|
|
|
</details>
|
|
|
|
## Customize SAML response
|
|
|
|
Append attributes returned on SAML requests.
|
|
|
|
### Triggers
|
|
|
|
- Complement SAMLResponse
|
|
- [Pre SAMLResponse creation](./customize-samlresponse#pre-saml-response-creation)
|
|
|
|
### Custom role mapping in attributes
|
|
|
|
Some products require specific role mapping from ZITADEL, no worries we got you covered 😉
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/set_custom_attribute.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Set dynamic attribute from organization metadata
|
|
|
|
Extend the attributes by dynamically read metadata from an organization and sets the present metadata.
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/org_metadata_attribute.js
|
|
```
|
|
|
|
</details>
|
|
|
|
## Manipulate user
|
|
|
|
You can automate manual tasks like setting default grants during user creation.
|
|
|
|
### Set email always verified
|
|
|
|
Useful if you trust the provided information or don't want the users to verify their e-mail addresses.
|
|
|
|
#### Triggers
|
|
|
|
- Internal Authentication
|
|
- [Pre Creation](/apis/actions/internal-authentication#pre-creation)
|
|
- External Authentication
|
|
- [Pre Creation](/apis/actions/external-authentication#pre-creation)
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/verify_email.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Add grants to users
|
|
|
|
Allows you to add default user grants to a user after it was created or federated.
|
|
|
|
#### Triggers
|
|
|
|
- Internal Authentication
|
|
- [Post Creation](/apis/actions/internal-authentication#post-creation)
|
|
- External Authentication
|
|
- [Post Creation](/apis/actions/external-authentication#post-creation)
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/add_user_grant.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Add metadata to users
|
|
|
|
Adding metadata to users allows you to set default metadata on users.
|
|
|
|
#### Triggers
|
|
|
|
- Internal Authentication
|
|
- [Pre Creation](/apis/actions/internal-authentication#pre-creation)
|
|
- [Post Authentication](/apis/actions/internal-authentication#post-authentication)
|
|
- External Authentication
|
|
- [Pre Creation](/apis/actions/internal-authentication#pre-creation)
|
|
- [Post Authentication](/apis/actions/internal-authentication#post-authentication)
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/add_metadata.js
|
|
```
|
|
|
|
</details>
|
|
|
|
## Use provided fields of identity providers
|
|
|
|
If you want to ensure that the data of a user are always up-to-date, you can automatically update user fields during authentication and save time of your customers and your team.
|
|
|
|
### Trigger
|
|
|
|
- External Authentication
|
|
- [Post Authentication](./external-authentication#post-authentication)
|
|
|
|
### Fields provided by Okta as OIDC IdP
|
|
|
|
If you use [Okta as an identity provider](/guides/integrate/identity-providers/okta-oidc) you can improve the onboarding experience of new users by prefilling some basic information during authentication.
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/okta_identity_provider.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Fields provided by Gitlab
|
|
|
|
If you use [Gitlab as an identity provider](/guides/integrate/identity-providers/gitlab) you can improve the onboarding experience of new users by prefilling some basic information during authentication.
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/gitlab_identity_provider.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Fields provided by Github
|
|
|
|
If you use [Github as an identity provider](/guides/integrate/identity-providers/github) you can improve the onboarding experience of new users by prefilling some basic information during authentication.
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/github_identity_provider.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Claims provided by a generic OIDC identity provider
|
|
|
|
If you use a [generic OIDC identity provider](/guides/integrate/identity-providers/migrate#migrate-generic-oidc-provider) you can improve the onboarding experience of new users by prefilling some basic information during authentication.
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/set_idp_picture_metadata.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Attributes provided by Okta as SAML IDP
|
|
|
|
If you use [Okta as an identity provider](/guides/integrate/identity-providers/okta_saml#add-attribute-statements) you can improve the onboarding experience of new users by prefilling some basic information during authentication.
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/okta_saml_prefil_register_form.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Attributes provided by Microsoft Entra as SAML IDP
|
|
|
|
If you use [Microsoft Entra as SAML identity provider](/guides/integrate/identity-providers/azure-ad-saml) you can improve the onboarding experience of new users by prefilling some basic information during authentication.
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/entra_id_saml_prefil_register_form.js
|
|
```
|
|
|
|
</details>
|
|
|
|
### Attributes provided by a generic SAML identity provider
|
|
|
|
If you use a [SAML identity provider like mocksaml](/guides/integrate/identity-providers/mocksaml) you can improve the onboarding experience of new users by prefilling some basic information during authentication.
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/post_auth_saml.js
|
|
```
|
|
|
|
</details>
|
|
|
|
## Context aware execution
|
|
|
|
Based on the context the execution path of an action can change. ZITADEL allows complex execution paths of course. 😎
|
|
|
|
### Based on auth request information
|
|
|
|
Execution paths might change based on the application initiating the authentication.
|
|
|
|
#### Triggers
|
|
|
|
- Internal Authentication
|
|
- [Pre Creation](/apis/actions/internal-authentication#pre-creation)
|
|
- [Post Creation](/apis/actions/internal-authentication#post-creation)
|
|
- [Post Authentication](/apis/actions/internal-authentication#post-authentication)
|
|
- External Authentication
|
|
- [Pre Creation](/apis/actions/external-authentication#pre-creation)
|
|
- [Post Creation](/apis/actions/external-authentication#post-creation)
|
|
- [Post Authentication](/apis/actions/external-authentication#post-authentication)
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/execute_action_on_specific_app.js
|
|
```
|
|
|
|
</details>
|
|
|
|
This example uses [zitadel's log module](/apis/actions/modules#log)
|
|
|
|
### Check authentication error
|
|
|
|
Your action can also check for errors during the login process.
|
|
|
|
#### Triggers
|
|
|
|
- Internal Authentication
|
|
- [Post Authentication](/apis/actions/internal-authentication#post-authentication)
|
|
- External Authentication
|
|
- [Post Authentication](/apis/actions/external-authentication#post-authentication)
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/post_auth_log.js
|
|
```
|
|
|
|
</details>
|
|
|
|
This example uses [zitadel's log module](/apis/actions/modules#log)
|
|
|
|
### Throw an error
|
|
|
|
Allows you to limit the user interaction. The error thrown will be shown to the user if the action is not [allowed to fail](/concepts/features/actions#how-it-works).
|
|
|
|
<details open="">
|
|
<summary>Code example</summary>
|
|
|
|
```js reference
|
|
https://github.com/zitadel/actions/blob/main/examples/throw_error.js
|
|
```
|
|
</details>
|