Usage: octopize-deploy-tool tasks authentik-migrate [-h] [--users USERS]
                                                    [--orgs ORGS]
                                                    [--licenses LICENSES]
                                                    [--authentik-url AUTHENTIK_URL]
                                                    [--authentik-token AUTHENTIK_TOKEN]
                                                    [--dry-run] [--log LOG]
                                                    [--from-log FROM_LOG]
                                                    [--failed-only]
                                                    [--verbosity {1,2}]

Import users, organizations, and licenses from an existing Avatar instance into the authentik SSO service. Reads CSV exports from the Avatar API database and creates the corresponding users, groups, and memberships in authentik.

Use --dry-run to preview all operations before committing them. If a run is interrupted, use --from-log with --failed-only to retry only the operations that did not complete.

Options:
  -h, --help            show this help message and exit
  --users USERS         Path to users CSV file
  --orgs ORGS           Path to organizations CSV file
  --licenses LICENSES   Path to licenses CSV file
  --authentik-url AUTHENTIK_URL
                        Base URL of the authentik instance. In self-hosted
                        deployments this is usually the /sso path, e.g.
                        https://avatar.example.com/sso
  --authentik-token AUTHENTIK_TOKEN
                        API token for authentik
  --dry-run             Parse and display operations without executing
  --log LOG             Path to write the JSONL operation log (default:
                        migration_log.jsonl)
  --from-log FROM_LOG   Replay operations from a previous log file instead of
                        parsing sources
  --failed-only         When using --from-log, only replay operations that
                        previously failed
  --verbosity {1,2}     Verbosity level: 1=essential (default), 2=verbose
