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.29.tar.gz (46.2 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.29-py3-none-any.whl (64.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aa_pipeline-0.1.29.tar.gz
  • Upload date:
  • Size: 46.2 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.29.tar.gz
Algorithm Hash digest
SHA256 95db03f9fdfdc442ec2d623bea60fcea405ecfe96615e576e7c5e59b601634bd
MD5 adac3ba24e9f4e9b3d7760cf84e94bd0
BLAKE2b-256 eee63b4aab88b9ac9cc6072d358ddaba0e57d03d2167569730a39718b736994c

See more details on using hashes here.

Provenance

The following attestation bundles were made for aa_pipeline-0.1.29.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.29-py3-none-any.whl.

File metadata

  • Download URL: aa_pipeline-0.1.29-py3-none-any.whl
  • Upload date:
  • Size: 64.4 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.29-py3-none-any.whl
Algorithm Hash digest
SHA256 d7aacfb228db95f57e5957eaac973109a1162964f4c655e81f85cef744872929
MD5 fabe56f145d8d110af747083068053e3
BLAKE2b-256 03719fd5bebcd6d38c63e1adc655169bf606e999cbc5c43f89e1a03c2e213e1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for aa_pipeline-0.1.29-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