Structured Journey System for Alliance Auth — generalised onboarding, training, and certification flows.
Project description
aa-pipeline
A structured journey system for Alliance Auth — onboarding, training, certification, and vetting flows.
aa-pipeline provides fully configurable Flows made up of ordered Steps, with built-in support for Smart Filter checks, user acknowledgements, service account verification, and on-complete automation.
Features
- Three step types
filter_check— automatically evaluated against configured Smart Filtersacknowledgement— user reads content and clicks Confirmservice_check— verifies an active service account (Discord, Mumble, TeamSpeak, etc.) via the runtime service registry
- Flow lifecycle —
draft→published→archived(with restore to draft) - Flow types — Onboarding, Training, Certification, Vetting, Industry, Other
- Audience targeting — States, Groups, Corporations, Alliances, Factions, Characters
- Auto-assignment — flows are assigned automatically when a user's profile, groups, or characters change
- On-complete automation — add users to groups and fire a signed webhook when a flow is completed
- In-app flow manager — create, edit, publish, archive, and reorder flows and steps without Django Admin
- Smart Filter check editor — attach and reorder Smart Filter checks per step in-app
- Signed webhooks — outgoing HTTP POST payloads include an
X-Pipeline-SignatureHMAC-SHA256 header for receiver verification - GDPR hook — integrates with aa-gdpr for data export and deletion
- Alliance Auth theme compatible — Bootstrap 5, dark-mode support, mobile responsive
Requirements
- Python >= 3.10
- Alliance Auth >= 4.3.1, < 5
Installation
See the Alliance Auth plugin installation docs for general guidance.
-
Install the package:
pip install aa-pipeline[markdown]
The
[markdown]extra installsmarkdownandbleachto enable Markdown rendering in step body text. Without it, body text is displayed as plain text. -
Add
"pipeline"toINSTALLED_APPSin your Alliance Auth settings file (e.g.local.py):INSTALLED_APPS += [ "pipeline", ]
-
Rebuild the image, run migrations, and collect static files:
docker compose build docker compose exec allianceauth_gunicorn bash -c "auth migrate && auth collectstatic --noinput" docker compose up -d
-
In Django Admin, assign the
pipeline | Can access this apppermission to the groups or states that should see the Pipeline menu item.
Updating
-
Upgrade the package:
pip install --upgrade aa-pipeline[markdown]
-
Rebuild and apply any new migrations:
docker compose build docker compose exec allianceauth_gunicorn bash -c "auth migrate && auth collectstatic --noinput" docker compose up -d
Configuration
No required settings.
Usage
Setting up a flow
-
Click Manage Flows in the Pipeline menu (requires the
pipeline | Can manage flowspermission or superuser access). -
Create a flow and set its Status to
Draftwhile building. -
Add and reorder steps using the step editor.
-
For
filter_checksteps, add Smart Filter checks in the Smart Filter Checks card on the step form. If your Smart Filters were registered before Pipeline was installed, sync them first:docker compose exec allianceauth_gunicorn python manage.py pipeline_sync_filters
-
Configure Audience & Visibility — the flow won't appear to users until at least one audience dimension is set.
-
Change Status to
Published.
Users matching the configured audience will see the flow on their Pipeline page and will be auto-assigned if Auto Assign is enabled.
Contributing
Issues and pull requests welcome at GitHub.
License
GPLv3 — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aa_pipeline-0.1.26.tar.gz.
File metadata
- Download URL: aa_pipeline-0.1.26.tar.gz
- Upload date:
- Size: 46.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76cfd43a5738dba44a93f7160bce1f944fbf347784bcc87c4bd13a32e49e509a
|
|
| MD5 |
25300d7317ce4db005565b393c976a54
|
|
| BLAKE2b-256 |
cfe2f8eac52225aa3a90c190416394dbbe044131a8467a2e42f849ebbfdca4b5
|
Provenance
The following attestation bundles were made for aa_pipeline-0.1.26.tar.gz:
Publisher:
publish.yml on Thrainkrilleve/aa-pipeline
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aa_pipeline-0.1.26.tar.gz -
Subject digest:
76cfd43a5738dba44a93f7160bce1f944fbf347784bcc87c4bd13a32e49e509a - Sigstore transparency entry: 1178005788
- Sigstore integration time:
-
Permalink:
Thrainkrilleve/aa-pipeline@05f8c86302d12b938ea760a6e5ff8d2871b51303 -
Branch / Tag:
refs/tags/v0.1.26 - Owner: https://github.com/Thrainkrilleve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@05f8c86302d12b938ea760a6e5ff8d2871b51303 -
Trigger Event:
push
-
Statement type:
File details
Details for the file aa_pipeline-0.1.26-py3-none-any.whl.
File metadata
- Download URL: aa_pipeline-0.1.26-py3-none-any.whl
- Upload date:
- Size: 64.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db1032993a03a0d79e5b5121bca98ed76d65db8bde27b305ee467db2a6bd8538
|
|
| MD5 |
f9bdb0daee8e1d3204e18586a2352f6e
|
|
| BLAKE2b-256 |
7ac077973692736f307edc6235fda7df93edfdf8f093fb25f15975cc0efaae83
|
Provenance
The following attestation bundles were made for aa_pipeline-0.1.26-py3-none-any.whl:
Publisher:
publish.yml on Thrainkrilleve/aa-pipeline
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aa_pipeline-0.1.26-py3-none-any.whl -
Subject digest:
db1032993a03a0d79e5b5121bca98ed76d65db8bde27b305ee467db2a6bd8538 - Sigstore transparency entry: 1178005793
- Sigstore integration time:
-
Permalink:
Thrainkrilleve/aa-pipeline@05f8c86302d12b938ea760a6e5ff8d2871b51303 -
Branch / Tag:
refs/tags/v0.1.26 - Owner: https://github.com/Thrainkrilleve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@05f8c86302d12b938ea760a6e5ff8d2871b51303 -
Trigger Event:
push
-
Statement type: