Skip to content

NUB-CLASS-1: Strict baseline posture (sub-track)#17

Draft
dskvr wants to merge 2 commits intomasterfrom
nub-class-1
Draft

NUB-CLASS-1: Strict baseline posture (sub-track)#17
dskvr wants to merge 2 commits intomasterfrom
nub-class-1

Conversation

@dskvr
Copy link
Copy Markdown
Contributor

@dskvr dskvr commented Apr 21, 2026

Status: Draft
Parent: NUB-CLASS
Class number: 1

Summary

NUB-CLASS-1 is the strict baseline posture for napplets that do not declare any class-contributing NUB capabilities. Shells emit a restrictive Content Security Policy with connect-src 'none', show no consent prompt, and send class.assigned with class: 1.

CSP Posture

connect-src 'none'

Shells emitting the NUB-CLASS-1 posture MUST include connect-src 'none' in the runtime CSP served with the napplet's HTML. Other directives in the baseline CSP (script-src, default-src, img-src, etc.) are shell-policy concerns and are NOT specified by NUB-CLASS-1 — only the connect-src value is the class's defining characteristic.

Scope

  • Manifest Prerequisites — default posture; reached when no other class-contributing NUB's trigger conditions are met. Future NUB-CLASS-$N ($N > 1) MUST document their own triggers.
  • Shell Responsibilities — emit baseline CSP with connect-src 'none', skip consent prompt, send terminal class.assigned with class: 1.
  • User Consent — no consent state; resolves to NUB-CLASS-1 at first load, every subsequent load, under every shell that implements the base protocol, independent of user action.
  • Security Considerations — zero direct-network surface; napplet cannot fetch/WebSocket/EventSource any host. Indirect network still available via shell-mediated NUBs (e.g., NUB-RESOURCE).

Non-Goals

  • Dynamic promotion — a napplet that starts as NUB-CLASS-1 stays NUB-CLASS-1 for its lifecycle; promotion to a higher class requires manifest change + aggregateHash change + new iframe.
  • Defining shell CSP policies beyond connect-src — not in scope.

Implementations

(none yet)

NUB-CLASS-1 is the strict baseline posture in the NUB-CLASS sub-track:
connect-src 'none', no consent prompt, class.assigned with class: 1.
This is the default for any napplet whose manifest lacks class-contributing
NUB tags. Consent-free; resolves at first load and every subsequent load.

Sub-track member under NUB-CLASS; see NUB-CLASS.md for the authority
model, wire timing, and cross-NUB invariant guidance.
@dskvr dskvr marked this pull request as draft April 22, 2026 09:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant