A lexicon-driven AppView for ATProto. happyview.dev
backfill firehose jetstream atproto appview oauth lexicon
8
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: update the dashboard docs

Trezy 715ab1be 9b72204a

+29 -25
+29 -25
packages/docs/docs/getting-started/dashboard.md
··· 4 4 5 5 On a fresh deployment with no users in the database, the first person to log in to the dashboard is automatically bootstrapped as the super user with all permissions — so log in with the handle you want to own the instance first. 6 6 7 - ## Lexicons 7 + ## Data 8 + 9 + ### Lexicons 8 10 9 11 Navigate to **Lexicons** to see all uploaded lexicons. Each entry shows the NSID, type (record, query, procedure), and whether a Lua script is attached. 10 12 11 - ### Adding a lexicon 13 + #### Adding a lexicon 12 14 13 15 Click **Add Lexicon** and choose **Local** or **Network**. 14 16 ··· 25 27 26 28 **Network** lexicons are fetched from the atproto network. Enter an NSID (e.g. `xyz.statusphere.status`) and HappyView resolves the schema automatically. If found, the lexicon JSON is displayed in a read-only editor. Click **Add** to track it. Network lexicons are kept up to date via the Jetstream subscription. See [Lexicons - Network lexicons](../guides/indexing/lexicons.md#network-lexicons) for how resolution works. 27 29 28 - ### JSON editor 30 + #### JSON editor 29 31 30 32 The JSON editor provides real-time validation against the atproto Lexicon v1 schema: 31 33 ··· 33 35 - Auto-complete for definition types (`record`, `query`, `procedure`, `subscription`), property types (`string`, `integer`, `boolean`, `ref`, `union`, `blob`, `cid-link`, etc.), and schema structure (`defs`, `main`, `properties`, `required`) 34 36 - Enforces the required top-level shape: `lexicon`, `id`, and `defs.main` 35 37 36 - ### Lua editor 38 + #### Lua editor 37 39 38 40 The Lua editor provides context-aware code completions, including suggestions for the `Record`, `db`, `input`, and `params` APIs as well as Lua keywords, builtins, and standard library functions. It also has snippets for `if`, `for`, `function`, etc. 39 41 40 42 See [Lua Scripting](../guides/scripting.md) for the full runtime reference and examples. 41 43 42 - ## Records 44 + ### Records 43 45 44 46 Navigate to **Records** to browse all indexed atproto records. Records are grouped by collection and searchable. Each record shows its AT URI, author DID, and the raw record JSON. 45 47 46 - ## Backfill 48 + ### Backfill 47 49 48 50 Navigate to **Backfill** to view and manage backfill jobs. You can start a new backfill for any record-type lexicon to import historical records from the network. The page shows job status, progress (repos processed / total), and record counts. See [Backfill](../guides/indexing/backfill.md) for how the process works. 49 51 50 - ## Users 52 + ### Dead Letters 51 53 52 - Navigate to **Users** to manage who can access the admin API and dashboard. You can add users by DID, assign permissions individually or via a template (`viewer`, `operator`, `manager`, `full_access`), and remove users. The super user is highlighted and has all permissions by default. See [Permissions](../guides/admin/permissions.md) for what each permission grants. 54 + Navigate to **Dead Letters** to view records that failed to index. Each entry shows the AT URI, error reason, and the raw record payload. You can retry, reindex, or dismiss individual dead letters, or use bulk actions to handle many at once. The sidebar badge shows the count of unresolved dead letters. 53 55 54 - ## Events 56 + ## Access 55 57 56 - Navigate to **Events** to view the audit log of admin actions. Events include user creation, lexicon uploads, permission changes, backfill starts, and more. Each entry shows the event type, severity, actor, subject, and timestamp. Events are retained for the number of days configured by `EVENT_LOG_RETENTION_DAYS` (default 30). 57 - 58 - ## Settings 58 + ### Users 59 59 60 - The **Settings** section contains several sub-pages: 60 + Navigate to **Users** to manage who can access the admin API and dashboard. You can add users by DID, assign permissions individually or via a template (`viewer`, `operator`, `manager`, `full_access`), and remove users. The super user is highlighted and has all permissions by default. See [Permissions](../guides/admin/permissions.md) for what each permission grants. 61 61 62 - ### General 62 + ### API Keys 63 63 64 - Configure instance-level settings: application name, logo, terms of service URL, and privacy policy URL. These values appear on OAuth authorization screens and can also be set via environment variables — dashboard values take precedence. 64 + Create and revoke admin API keys for automation. Each key is scoped to specific permissions and tied to the creating user. See [API Keys](../guides/admin/api-keys.md) for details. 65 65 66 66 ### API Clients 67 67 68 68 Register and manage third-party API clients. Each client gets an `hvc_…` client key and `hvs_…` client secret. You can configure the client type (confidential or public), allowed origins, scopes, and per-client rate limits. See [Authentication — API client identification](authentication.md#xrpc-api-client-identification) for how clients are used. 69 69 70 - ### API Keys 71 - 72 - Create and revoke admin API keys for automation. Each key is scoped to specific permissions and tied to the creating user. See [API Keys](../guides/admin/api-keys.md) for details. 73 - 74 - ### Users 75 - 76 - An alternative path to the top-level Users page for managing user accounts and permissions. 70 + ## Integrations 77 71 78 72 ### Plugins 79 73 ··· 83 77 84 78 Configure labeler subscriptions for content labeling. See [Labelers](../guides/features/labelers.md) for details. 85 79 80 + ## System 81 + 82 + ### General 83 + 84 + Configure instance-level settings: application name, logo, terms of service URL, and privacy policy URL. These values appear on OAuth authorization screens and can also be set via environment variables — dashboard values take precedence. 85 + 86 86 ### XRPC Proxy 87 87 88 88 Control which unrecognized XRPC methods are forwarded to their resolved authority. Choose from four modes: **Disabled** (block all proxy requests), **Open** (proxy everything — the default), **Allowlist** (only proxy NSIDs matching your patterns), or **Blocklist** (proxy everything except matching patterns). Allowlist and blocklist modes accept NSID patterns with trailing wildcards (e.g. `com.example.*`). Locally registered lexicons are always served regardless of this setting. See [XRPC Proxy](../reference/admin/xrpc-proxy.md) for the full API reference. 89 89 90 - ### Environment Variables 90 + ### ENV Variables 91 91 92 92 View the current values of all environment variables that affect HappyView's behavior. This is a read-only view — values are set via your deployment environment, not the dashboard. 93 93 94 - ### Accounts 94 + ### Event Logs 95 + 96 + View the audit log of admin actions. Events include user creation, lexicon uploads, permission changes, backfill starts, and more. Each entry shows the event type, severity, actor, subject, and timestamp. Events are retained for the number of days configured by `EVENT_LOG_RETENTION_DAYS` (default 30). 95 97 96 - Manage connected atproto accounts used by the instance. 98 + ## About 99 + 100 + The **About** page shows the current HappyView version and instance configuration: public URL, database backend, Jetstream URL, relay URL, and PLC directory URL. 97 101 98 102 ## Next steps 99 103