Skip to content

design(pm-stack): one public URL for the dashboard behind Cloudflare Access (settled access model, not yet implemented) #1182

Open

Description

@dezren39

Finding

Drew's settled rule (2026-10-25): the aggregator may be public ONLY behind a password/auth gate (e.g. Cloudflare Access); today it's loopback+tailnet only, so his "single URL" works only on-tailnet. Kaneo already proves the pattern (kaneo.security.cab via pm-tunnel + its own auth). The decision is made; the implementation for the aggregator was never filed.

Proposal

Design + (on Drew's go in this issue) implement: a hostname (e.g. pm.security.cab) via the existing pm-tunnel, Cloudflare Access in front (identity = Drew's Google SSO), aggregator itself unchanged (still binds loopback+tailnet; tunnel reaches loopback). Document the auth model + break-glass (tailnet path unaffected). This issue is the design/record - implementation waits for Drew's explicit go recorded here.

Acceptance

Acceptance criteria

  • A design is recorded (on this issue or in repo doc/) naming the hostname, the Cloudflare Access policy (identity = Drew's Google SSO), and the failure modes.
  • Implementation does not start until Drew's explicit go is recorded on this issue — that gate is part of the acceptance, not a delay.
  • After Drew's go: the URL serves the dashboard post-Access-login and rejects unauthenticated requests, verified from off-tailnet; the aggregator itself still binds loopback+tailnet only, and the tailnet break-glass path is unaffected and documented.

Activity

  1. added
    kind/featureNew feature or capability request
    app/pm-stackpm-stack (Pad/Grist) in developing-today/code
    on Oct 27, 2026
  2. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  3. added
    priority/normalOrdinary priority (the default)
    effort/mMedium: expected under 1 day of work
    source/humanFiled directly by a human
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 28, 2026
  4. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: epic #1184 (parent — this is its "one public URL" child) · #1253 (SSO propagation design, which starts from the Access identity settled here) · #1254 (PWA/push — its delivery path depends on behind-Access vs tailnet-only) · Kaneo's kaneo.security.cab via pm-tunnel as the working pattern proof.

    Notes: Still live — verified this run: no merged PR puts the aggregator behind Access; merged-PR searches return only unrelated number coincidences. The access decision itself is settled (Drew, 2026-10-25, per the body); what is missing is the recorded design and Drew's go. The issue arrived with a ## Acceptance section; the appended ## Acceptance criteria formalizes it, gate included. effort/m for design + implementation once approved.

    Risks / suggested approach: this is the one item in this batch with a genuine Drew gate — the design can be written now, but implementation must wait for his recorded go; the monitor has NOT added user/escalated, because the issue itself is the record he will answer on and the design step is unblocked.

    — repo-fleet-monitor intake pass, 2026-10-28T04:00Z

  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 1, 2026
  6. 5 remaining items

  7. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    status/blockedQueue or user escalation state
    user/escalatedQueue or user escalation state
    queue/blockedQueue or user escalation state
    on Nov 1, 2026
  8. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Claimed queue task 4976 as repo-worker-code. Revalidating the issue and the approved Cloudflare Access/tunnel plan before making any change.

  9. added
    queue/blockedQueue or user escalation state
    status/blockedQueue or user escalation state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 1, 2026
  10. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Queue task 4976 is blocked as packet_defect: the packet cites comment 6552478930 as Drew's GO, but that comment is the earlier escalation asking for a go/no-go, and the visible issue-comment history contains no explicit GO. No Cloudflare configuration was changed. Resume only with corrected approval evidence or a new explicit GO.

  11. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: reviewed (coverage loop-back)
    Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 2468 (triage, blocked, priority 50) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
    Found via: coverage loop-back 2026-11-03

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/pm-stackpm-stack (Pad/Grist) in developing-today/codeeffort/mMedium: expected under 1 day of workkind/featureNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)queue/blockedQueue or user escalation statequeue/queuedHas a queued task in the Supabase agent queuesource/humanFiled directly by a humanstatus/blockedQueue or user escalation statetask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions