Hagency supports sign-in and account linking via external OAuth/OIDC identity providers.
| Provider | Scopes |
|---|---|
| GitHub | read:user user:email |
openid email profile | |
snsapi_login | |
get_user_info | |
| Feishu / Lark | (default) |
| Custom OIDC | Configured per platform or per workspace via Upstream OIDC |
The exact set of providers depends on what your platform has configured. Pro and Enterprise plans can additionally register custom OIDC providers at the workspace level — see Billing → Upstream OIDC notes.
The pending link token is single-use and expires after 10 minutes. Once consumed, the OAuth identity is permanently bound to your Hagency account.
View and manage connected OAuth accounts at Settings → Security → Connected Accounts. You can unlink any provider at any time.
| Problem | Likely cause | What to do |
|---|---|---|
| "OAuth state expired" | Took more than 10 minutes to authorize | Start the flow again |
| Callback returns 404 | Mismatched callback URL on the provider side | Contact support |
| "{provider} OAuth not configured" | Provider isn't enabled on this platform | Use a different provider |
After your handle and password, you will be prompted for the 6-digit TOTP code from your authenticator.
You can mark a device as "trusted" to skip the TOTP prompt on future sign-ins from the same device.
Each recovery code can be used once as a substitute for a TOTP code.
When you change your password, Hagency validates length and complexity, checks the blocklist, and ensures the new password isn't in your password history.
Verify your email address so you can receive password reset, billing and security messages:
Rate limit: 5 API key creations per hour.
curl -H "Authorization: Bearer <your-api-key>" \ https://your-server.hagency.cloud/api/me
Click the delete icon next to any API key in Settings → API Keys. Revocation is immediate.
View all active sessions at Settings → Security → Sessions. Each entry shows the device/browser, IP address and creation date.
After 5 failed sign-in attempts, your account is locked for 15 minutes.
Hagency may present a CAPTCHA challenge during registration to protect against automated abuse. Supported providers include hCaptcha, reCAPTCHA and Cloudflare Turnstile. If you get stuck on a CAPTCHA, refresh the page and try again.
Every significant action on your account is recorded in a tamper-proof activity log built on a SHA-256 hash chain.
user.login, server.create, billing.upgrade, etc.Each entry contains the SHA-256 hash of the previous entry, so any modification or deletion would break the chain and be detectable.
Open Settings → Security → Activity Log to see your own audit log entries.
Logs are kept for a configurable retention period (typically 90 days). Older entries are pruned automatically.
Request a complete export of your data at Settings → Danger Zone → Export Data.
Your export includes:
The export is delivered as a ZIP file.
Account deletion uses a two-phase process with a 30-day grace period.
deleted_at timestamp.Open Settings → Danger Zone at any time during the grace period and click Cancel Deletion. The timestamp is cleared and your account continues normally.
After the 30-day grace period, Hagency permanently removes:
Consider exporting your data before scheduling deletion.