Skip to main content

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

Project details


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.26.tar.gz (46.1 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.26-py3-none-any.whl (64.3 kB view details)

Uploaded Python 3

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

Hashes for aa_pipeline-0.1.26.tar.gz
Algorithm Hash digest
SHA256 76cfd43a5738dba44a93f7160bce1f944fbf347784bcc87c4bd13a32e49e509a
MD5 25300d7317ce4db005565b393c976a54
BLAKE2b-256 cfe2f8eac52225aa3a90c190416394dbbe044131a8467a2e42f849ebbfdca4b5

See more details on using hashes here.

Provenance

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

Hashes for aa_pipeline-0.1.26-py3-none-any.whl
Algorithm Hash digest
SHA256 db1032993a03a0d79e5b5121bca98ed76d65db8bde27b305ee467db2a6bd8538
MD5 f9bdb0daee8e1d3204e18586a2352f6e
BLAKE2b-256 7ac077973692736f307edc6235fda7df93edfdf8f093fb25f15975cc0efaae83

See more details on using hashes here.

Provenance

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