Skip to main content

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 Filters
    • acknowledgement — user reads content and clicks Confirm
    • service_check — verifies an active service account (Discord, Mumble, TeamSpeak, etc.) via the runtime service registry
  • Flow lifecycledraftpublishedarchived (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-Signature HMAC-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.

  1. Install the package:

    pip install aa-pipeline[markdown]
    

    The [markdown] extra installs markdown and bleach to enable Markdown rendering in step body text. Without it, body text is displayed as plain text.

  2. Add "pipeline" to INSTALLED_APPS in your Alliance Auth settings file (e.g. local.py):

    INSTALLED_APPS += [
        "pipeline",
    ]
    
  3. 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
    
  4. In Django Admin, assign the pipeline | Can access this app permission to the groups or states that should see the Pipeline menu item.


Updating

  1. Upgrade the package:

    pip install --upgrade aa-pipeline[markdown]
    
  2. 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

  1. Click Manage Flows in the Pipeline menu (requires the pipeline | Can manage flows permission or superuser access).

  2. Create a flow and set its Status to Draft while building.

  3. Add and reorder steps using the step editor.

  4. For filter_check steps, 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
    
  5. Configure Audience & Visibility — the flow won't appear to users until at least one audience dimension is set.

  6. 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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aa_pipeline-0.1.30.tar.gz (46.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aa_pipeline-0.1.30-py3-none-any.whl (64.6 kB view details)

Uploaded Python 3

File details

Details for the file aa_pipeline-0.1.30.tar.gz.

File metadata

  • Download URL: aa_pipeline-0.1.30.tar.gz
  • Upload date:
  • Size: 46.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aa_pipeline-0.1.30.tar.gz
Algorithm Hash digest
SHA256 30c99e52975d9d56457ab278894f2b5710a157e7bf396744ab2ed03bf780d93e
MD5 5443299e811a42dc7ea6c8f234238976
BLAKE2b-256 0edc4c089178c2e0dbe9d241032247c6a1fa9eb430e10c5f86a0c10d688dbf7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aa_pipeline-0.1.30.tar.gz:

Publisher: publish.yml on Thrainkrilleve/aa-pipeline

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aa_pipeline-0.1.30-py3-none-any.whl.

File metadata

  • Download URL: aa_pipeline-0.1.30-py3-none-any.whl
  • Upload date:
  • Size: 64.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aa_pipeline-0.1.30-py3-none-any.whl
Algorithm Hash digest
SHA256 af00fc2799e964ddb2e6d8da59c454cc79d430ba85e48448f9662da3b8f5a03d
MD5 1a3d4e12d45fed2db19d41f8833447fb
BLAKE2b-256 963feabf1841a4b9a0cb6ac43e24509d5799d55c9acac3218b6caf65f87a3b9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for aa_pipeline-0.1.30-py3-none-any.whl:

Publisher: publish.yml on Thrainkrilleve/aa-pipeline

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page