71 lines
2.1 KiB
Markdown
71 lines
2.1 KiB
Markdown
---
|
|
title: File structure
|
|
---
|
|
|
|
Blueprints are YAML files, which can use some additional tags to ease blueprint creation.
|
|
|
|
## Additional Tags
|
|
|
|
#### `!KeyOf`
|
|
|
|
Example: `policy: !KeyOf my-policy-id`
|
|
|
|
Resolves to the primary key of the model instance defined by id _my-policy-id_.
|
|
|
|
If no matching entry can be found, an error is raised and the blueprint is invalid.
|
|
|
|
#### `!Find`
|
|
|
|
Example: `configure_flow: !Find [authentik_flows.flow, [slug, default-password-change]]`
|
|
|
|
Looks up any model and resolves to the the matches' primary key.
|
|
First argument is the model to be queried, remaining arguments are expected to be pairs of key=value pairs to query for.
|
|
|
|
#### `!Context`
|
|
|
|
Example: `configure_flow: !Context foo`
|
|
|
|
Find values from the context. Can optionally be called with a default like `!Context [foo, default-value]`.
|
|
|
|
## Structure
|
|
|
|
```yaml
|
|
# The version of this blueprint, currently 1
|
|
version: 1
|
|
# Optional block of metadata, name is required if metadata is set
|
|
metadata:
|
|
# Arbitrary key=value store, special labels are listed below
|
|
labels:
|
|
foo: bar
|
|
name: example-blueprint
|
|
# Optional default context, instance context is merged over this.
|
|
context:
|
|
foo: bar
|
|
# List of entries (required)
|
|
entries:
|
|
- # Model in app.model notation, possibilities are listed in the schema (required)
|
|
model: authentik_flows.flow
|
|
# Key:value filters to uniquely identify this object (required)
|
|
identifiers:
|
|
slug: initial-setup
|
|
# Optional ID for use with !KeyOf
|
|
id: flow
|
|
# Attributes to set on the object. Only explicitly required settings should be stated
|
|
# as these values will override existing attributes
|
|
attrs:
|
|
denied_action: message_continue
|
|
designation: stage_configuration
|
|
name: default-oobe-setup
|
|
title: Welcome to authentik!
|
|
```
|
|
|
|
## Special Labels
|
|
|
|
#### `blueprints.goauthentik.io/system`:
|
|
|
|
Used by authentik's packaged blueprints to keep globals up-to-date. Should only be removed in special cases.
|
|
|
|
#### `blueprints.goauthentik.io/example`:
|
|
|
|
Blueprints with this label are not automatically imported. They are still available when creating a new instance.
|