Skip to main content

AA Alt Corp

aa-altcorp is an Alliance Auth plugin for tracking alt-corporation relationships and auditing whether member-related characters, corporations, and alliances have the expected contact standings and access-list permissions.

It reads Alliance Auth and aa-contacts data, compares that data with configured policy, and reports differences for human review. It does not modify EVE contacts or access lists.

What it does

  • Records corporations and characters associated with Alliance Auth users.
  • Audits contact standings and access-list access for valid members.
  • Detects blue contacts and ACL entries without a matching Auth relationship.
  • Supports policies for Auth states, groups, positive contacts, named entities, and individual access lists.
  • Creates separate alert facets for contact and ACL problems.
  • Supports temporary exemptions with expiry, revocation, and an audit trail.
  • Delivers alerts through allianceauth-discordbot or a plain webhook.
  • Keeps the older corporation review flow available for existing installations.

The alert engine is informational. It never writes to EVE contacts or EVE access lists; changes remain manual administrator actions.

Requirements

The plugin supports Python 3.10 through 3.13 and requires:

Alliance Auth >= 5.3, < 6
aa-contacts >= 1.0.1, < 2
django-esi >= 9, < 10
croniter >= 6, < 7
django-celery-beat >= 2.7, < 3

Discord buttons are optional:

pip install 'aa-altcorp[discord]'

Installation

Activate the virtual environment used by Alliance Auth and install the package:

pip install aa-altcorp

Add the application to INSTALLED_APPS:

INSTALLED_APPS = [
    # ...
    "aa_altcorp",
]

Run migrations and collect static files:

python manage.py migrate
python manage.py collectstatic --noinput

The app configuration is aa_altcorp.apps.AaAltcorpConfig.

Configuration

Open Django Admin → Alt Corp settings after installation. Configure the standing target, valid Auth states, expected entity scope, alert delivery, notification interval, and Discord details there.

Alerting defaults to disabled so an upgrade does not immediately send notifications. Configure the expected state and policies first, then enable alerts.

An access list produces a missing-access alert only when it has an Access list policy in Django Admin. Present-but-unjustified entries can still produce alerts without a policy.

Scheduling

Create the periodic audit, alert scan, and Discord refresh tasks with:

python manage.py schedule_altcorp_tasks --scan-cron "0 * * * *"

The command is idempotent. --hours changes the audit interval, and --remove removes the tasks it created. On larger installations, schedule aa_altcorp.tasks.sync_all_access_lists separately to fan ACL synchronization out across characters.

Discord alerts

Install the optional Discord integration and add aadiscordbot to INSTALLED_APPS. Route its tasks to the bot queue:

app.conf.task_routes = {
    "aadiscordbot.tasks.*": {"queue": "aadiscordbot"},
}

The queue route is required because these task bodies are consumed by the bot worker. Without the bot, choose webhook delivery; webhook alerts are informational and have no interactive buttons.

Discord actions are authorized by configured Discord role IDs and are recorded with the Discord actor and linked Auth user when available.

Permissions

Permission Purpose
aa_altcorp.basic_access View plugin pages
aa_altcorp.manage_relationships Attach corporations and characters
aa_altcorp.view_alerts Reserved for future use
aa_altcorp.manage_alerts Reserved for future use

Alerts, exemptions, and access-list policies are managed through Django Admin permissions. The reserved alert permissions do not independently grant admin access. Discord authorization follows the configured roles.

Development

python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e '.[dev]'
pre-commit run --all-files
pytest
tox -e py312

On Windows, run the complete local pipeline with:

.\scripts\run_pipeline.ps1

GitHub Actions runs pre-commit, the Auth-absent pytest suite on Python 3.10–3.13, and the Alliance Auth integration suite on Python 3.12. See RELEASING.md for the first push, development workflow, and releases.

License

This project is licensed under the GNU General Public License v3.0. See LICENSE.

Release files for allianceauth-altcorp 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for allianceauth-altcorp 0.0.1
File Size Uploaded
allianceauth_altcorp-0.0.1.tar.gz 123.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for allianceauth-altcorp 0.0.1
File Interpreter ABI Platform
allianceauth_altcorp-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 235.1 kB

Release files / allianceauth_altcorp-0.0.1.tar.gz

Download URL allianceauth_altcorp-0.0.1.tar.gz
Size 123.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8aad0192a9b5ffe8e313d2d83b6c7b08abbb66fa03a340e90946ca74b1b99ba1
BLAKE2b-256 checksum
How to use checksums
0f8725551cc57fdf81a3ed9080b72b35a9e75c2f8c9f3fbb9a581d7d2324a92a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.0

Release files / allianceauth_altcorp-0.0.1-py3-none-any.whl

Download URL allianceauth_altcorp-0.0.1-py3-none-any.whl
Size 111.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
863bb914d5a62d3392131c315d24d19bb1a0540a9af0bcf4e5ff15067b1350a2
BLAKE2b-256 checksum
How to use checksums
988864bd954b9ef74b544db399868c2284942120d0516e6258c2148d3151ded3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.0

Release history Release notifications | RSS feed

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page