Dashboard
Platform health at a glance
Active Clients
—
Pending Consent
—
Total Cards
—
Monthly Revenue
—
| Slug | Company | Status | Package | Last Sync |
|---|---|---|---|---|
Activity Feed
last 20 events
Loading activity…
Clients
Manage tenant configurations and card operations
| Slug | Company | Status | Package | Seats | Domains | Last Sync | |
|---|---|---|---|---|---|---|---|
/
—
Card Operations
Client Config
Branding
Alias Overrides
Cards
| Display Name | UPN | Job Title | Department | Has Photo | URL |
|---|---|---|---|---|---|
Settings
Global platform configuration
Worker Endpoint
API configuration
Primary URL
https://my.cadcardlink.com
Worker Name
cardlink
Workers Dev URL
cardlink.jalyahs.workers.dev
Cron Schedule
0 2 * * * (2am UTC daily)
Legacy URL
card.ctrl-alt-design.net
Admin Key
ADMIN_REFRESH_KEY Worker secret
Session duration
8hr fixed + 30min idle
Storage
sessionStorage (this tab only)
Header
X-Admin-Key
Webhooks
Power Automate flows
Onboarding Flow
ONBOARDING_WEBHOOK_URL
Interest Form
INTEREST_WEBHOOK_URL
Destination
studio@ctrl-alt-design.net
SharePoint List
CardLink-Clients.xlsx
Cloudflare Access
Identity & MFA policy
Protected Domain
admin.cadcardlink.com
Identity Provider
Azure AD (Norstar tenant)
MFA
Duo (federated via Norstar M365)
Session
6 hours
Allowed Users
4 users on allowlist
System
Infrastructure reference · read-only
KV Namespaces
CARDLINK_CLIENTS
d0719d151cdc47899538ae45420f2697
Purpose
Client configs, slug index
CARDLINK_CARDS
ecd8629cef5443ae886d6a18ffb019c7
TTL
25 hours (auto-refreshed nightly)
KV Key Format: Client
tenant:{tenantId}
KV Key Format: Card
card:{tenantId}:{upn}
KV Key Format: Slug
slug:{slug}
Azure App Registration
Tenant
jalyahs.onmicrosoft.com
Tenant ID
297ac19b-b1dd-4996-be72-01887e02f488
Client ID
7bc312c8-e7cc-4bc2-b440-8916baaf7e38
Permissions
User.Read.All (app) · User.Read (delegated)
Audience
Multi-tenant
MPN ID
7128244
Publisher Slug
ctrl-alt-design
Known Limitations
Same-prefix alias disambiguation: /{slug}/shaylaj loads primary domain card only. Use full UPN for alias cards with same prefix.
Shared mailbox stale cards: toggling includeSharedMailboxes off requires manual purge or waiting for 25hr TTL expiry.
KV list pagination: list() returns max 1,000 keys. Large tenants may need pagination (not yet implemented).
iOS Add to Home Screen: PWA install prompt unavailable on iOS Safari — user must use share sheet manually.
Photo storage: profile photos stored as base64 in KV — large photos increase KV storage usage.
Roadmap
Phase 1
Settings panel · Norstar onboarding · Full documentation mid-July 2026
Phase 2
Employee self-service portal · Autotask billing · Auto-purge on sync
Phase 3
MSP white-label · Per-MSP Worker + KV · Partner portal
Phase 4
Database migration (replace KV) · NFC sticker program · IT Glue migration