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.28.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.28-py3-none-any.whl (64.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aa_pipeline-0.1.28.tar.gz
  • Upload date:
  • Size: 46.1 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.28.tar.gz
Algorithm Hash digest
SHA256 b316f54acc7aef3c039d3761e857cb56d2183bfb89313aff7fb5cab8e51ff298
MD5 3be3363424e107670593965fb74204f3
BLAKE2b-256 8722883ca910e1b4a2fedcc72bcf0c68da97564db98a5dfcbe77321a97fed27f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: aa_pipeline-0.1.28-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.12

File hashes

Hashes for aa_pipeline-0.1.28-py3-none-any.whl
Algorithm Hash digest
SHA256 cb0febc8125c689da7a3465edfdfb2fdcf451e9b02729d343af412ecf933f948
MD5 333eaf70c861abfce2f8c390d9f65df0
BLAKE2b-256 d3b1f4b61e2156d0ab6a124c3bd772c1563bbf9403681ad511437f0c4b070d95

See more details on using hashes here.

Provenance

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