StockStorm Admin Sign in to continue Checking session... Authenticated user is not an admin. {{ authError }} Sign in
Admin Dashboard v{{ cmsPackageVersion || '0.0.0' }}
{{ themeMode }} Logout
Server Stats Users Notifications Settings CMS Server Stats
Memory Usage{{ stats.memory }}
CPU Load{{ stats.cpu }}
Uptime{{ stats.uptime }}
Total Requests{{ stats.requests }}
Requests per Second{{ stats.rps }}
User Clients (Past {{ clientChartRangeHours }} Hours)
Connected Clients
Client IPBrowser IDPageStart TimeUptimeIdleActivityStatusUserRole
Waiting for websocket updates...
{{ client.ip }}{{ client.browserId }}{{ client.page }}{{ client.startTime }}{{ client.elapsedTime }}{{ client.idleTime }}{{ client.activityStatus }}{{ client.isGuest ? 'Guest' : 'User' }}{{ client.username }}{{ client.role }}
Refresh Previous {{ pageInfo }} Next {{ usersError }} Users
Name Email Auth Method User Type Watchlist Created Date Last Login Last Activity Actions
Loading users...
No users found.
{{ user.full_name }}{{ user.email }}{{ user.auth_method }} {{ user.is_super_admin ? 'Admin' : 'User' }} {{ user.watchlist_info }}{{ formatDate(user.created_at) }}{{ formatDate(user.last_sign_in_at) }}{{ formatDate(user.last_seen_at) }}
Notifications Refresh {{ notificationsError }}
No notifications found.
{{ notificationEditingId ? 'Edit Notification' : 'Create Notification' }} {{ notificationForm.status }} {{ notificationEditingId }} {{ notificationStatus }}
{{ notificationEditingId ? 'Save Changes' : 'Create Draft' }} Publish Archive Delete draft Close
Publication history
No publication history.
Select a notification or create a draft to begin.
Registration Emails Control optional emails sent during account creation. {{ settingsStatus }}

When off, new users still receive the Supabase email confirmation link and the registration code is still stored on their profile.

Advertising Control AADS ad tags on the landing page.

When off, the landing page leaves AADS slots empty and does not inject the desktop or mobile AADS iframe.

CMS Pages {{ cmsConfigStatus || 'Select a page to edit.' }} Refresh CMS Add CMS Page No CMS pages are configured. Directus

Open the Directus CMS backend for advanced content and schema management.

Check Site Alignment Create Missing Rows Check Directus Permissions Open CMS Admin
CMS Editor {{ cmsStatusLabel }} Preview Previous revisions Editing: {{ selectedCmsPageMeta.label }} ({{ selectedCmsPageMeta.path }}) {{ cmsStatus }}
CMS alignment issues
{{ page.slug }}: {{ page.issues.join('; ') }}
{{ warning.slug }}: {{ warning.message }}
{{ row.slug }}: Directus row is not implemented in the site page manifest.
Agent repair prompt
{{ cmsAlignmentPromptCopied ? 'Copied' : 'Copy Prompt' }}
{{ cmsPermissions.ok ? 'mdi-check-circle' : 'mdi-alert-circle' }} Directus permission diagnostics Dismiss {{ cmsPermissions.conclusion }}
Directus host: {{ cmsPermissions.config && (cmsPermissions.config.apiHost || cmsPermissions.config.apiUrl) || 'Unavailable' }} · Permission state: {{ cmsPermissions.permissionState || 'unknown' }} · No write operations were attempted.
Missing permissions: {{ cmsPermissions.missingPermissions.join(', ') }}
CollectionReadCreateUpdateDelete {{ collection }} {{ cmsPermissionAccessLabel(cmsPermissions.permissionMatrix && cmsPermissions.permissionMatrix[collection] && cmsPermissions.permissionMatrix[collection][action]) }} Draft lifecycle: {{ cmsPermissions.draftLifecycle.state || 'unknown' }} · version {{ cmsPermissions.draftLifecycle.versionId }} · outdated · version delta unreadable · current fields: {{ cmsPermissions.draftLifecycle.currentFields.join(', ') }} Field coverage: {{ cmsPermissions.fieldPermissions.ok ? 'All CMS read/write fields are available.' : 'Required field permissions are incomplete.' }} Missing: {{ cmsPermissions.fieldPermissions.missingFields.join(', ') }}
Directus live database
{{ cmsPermissions.directusDatabaseChecks?.conclusion || 'Unavailable or not configured' }}
Directus schema: {{ cmsPermissions.directusDatabaseChecks.schema }}
{{ cmsPermissions.directusDatabaseChecks.session.database_name || 'database' }} · {{ cmsPermissions.directusDatabaseChecks.session.current_schema || 'schema unknown' }} · {{ cmsPermissions.directusDatabaseChecks.session.search_path || 'search path unknown' }}
Admin-to-Supabase database
{{ cmsPermissions.adminDatabaseChecks?.conclusion || 'Unavailable or not configured' }}
{{ cmsPermissions.adminDatabaseChecks.session.database_name || 'database' }} · {{ cmsPermissions.adminDatabaseChecks.session.current_schema || 'schema unknown' }} · {{ cmsPermissions.adminDatabaseChecks.session.search_path || 'search path unknown' }}
Missing required relations: {{ cmsPermissions.directusDatabaseChecks.missingRequiredRelations.join(', ') }}
Missing required columns: {{ item.qualified }} ({{ item.columns.join(', ') }})
Core authentication query: {{ cmsPermissions.directusDatabaseChecks.authQuery.ok ? 'passed' : 'failed' }} · synthetic token only
Directus pool probe: {{ cmsPermissions.directusDatabaseChecks.poolHealth.concurrentProbePassed ? 'passed' : 'failed' }} · {{ cmsPermissions.directusDatabaseChecks.poolHealth.concurrentProbeCount }} concurrent read-only probes · {{ cmsPermissions.directusDatabaseChecks.poolHealth.elapsedMs }} ms
{{ table.qualified }} {{ table.exists ? 'relation visible' : 'relation missing' }} · {{ table.readable ? 'readable' : 'read failed' }} · {{ table.columns.length }} columns · missing {{ table.missingColumns.join(', ') }} · SELECT {{ table.privileges.can_select ? 'yes' : 'no' }} · INSERT {{ table.privileges.can_insert ? 'yes' : 'no' }} · UPDATE {{ table.privileges.can_update ? 'yes' : 'no' }}
Missing required relations: {{ cmsPermissions.adminDatabaseChecks.missingRequiredRelations.join(', ') }}
{{ table.qualified }} {{ table.exists ? 'relation visible' : 'relation missing' }} · {{ table.readable ? 'readable' : 'read failed' }} · SELECT {{ table.privileges.can_select ? 'yes' : 'no' }} · INSERT {{ table.privileges.can_insert ? 'yes' : 'no' }} · UPDATE {{ table.privileges.can_update ? 'yes' : 'no' }}
{{ check.name }} HTTP {{ check.status || 'network error' }} · {{ check.elapsedMs }} ms · {{ check.failureClass }} · {{ check.message }} · {{ check.errorDetail }} Request ID: {{ check.requestId }}
Content Fields
Dynamic slots mapped to page data-cms-field markers.
Add Field
{{ cmsContentFieldError }}
No dynamic content fields are defined for this page.
Preview Save Publish
Add CMS Page Create a draft Directus row that can be edited in this CMS tab. {{ cmsAddError }} Cancel Create Draft Page