Skip to content

SCN-010 Batch C review follow-ups: frontend 3001:80, opensearch mounts/components/internal-users, capability evidence #405

@Brad-Edwards

Description

@Brad-Edwards

Post-merge review of the Batch C Shuffle inventories (PR #404) re-derived every claim from the committed evidence. The "no ACES expressivity gap" conclusion holds (structured mapping manifests per aces#468-470 are used; docker.sock fits local_control_interfaces), but the review found two encoded falsehoods and several depth shortfalls to fix.

Errors

  1. frontend: dead published port + false prose. Compose publishes 3001:3001 but nginx listens only on 80/443 (frontend-state.txt socket table) — container port 3001 has no listener, so host:3001 is dead. The node description, network description, ledger facts shuffle-frontend.network.identity / runtime.service-listeners, and the README all claim "nginx HTTP/80 published to the host as 3001". Decision: fix the range to 3001:80 (upstream Shuffle convention), recreate the service, recapture the bundle, and correct SDL/ledger/README.
  2. opensearch: data-volume mount missing + false encoded disposition. docker-inspect shows aptl_shuffle_opensearch_data -> /usr/share/opensearch/data (RW) but the node's runtime.mounts is empty, while ledger fact shuffle-opensearch.runtime.mounts claims the mount table records it. No test coverage of mounts.

Depth shortfalls

  1. opensearch software_components: 1 hand-written row vs 692 Maven components in the bundle's own Syft SBOM. Backend encodes 157 Go modules, orborus 139 — same semantic family, undeclared inconsistent depth. Encode the Maven catalogue.
  2. opensearch identity authority: security plugin enabled, .opendistro_security (10 docs) in evidence, but no _plugins/_security/api/internalusers capture and identity_authorities: []. Capture and encode (backend precedent).
  3. capability assertions without evidence: frontend/opensearch/orborus encode 14 "effective" capabilities with no CapEff capture in any bundle. Add /proc/1/status capability capture to the capture scripts and derive the encoding from evidence.

Minor

  1. orborus ledger digest typo: sha256:e74e0246...366dba splices the platform-digest prefix onto the multi-arch index digest suffix.
  2. Docker embedded-DNS loopback listeners encoded on backend+orborus but omitted on frontend+opensearch despite identical evidence; standardize.
  3. Stale opensearch capture-limits line claims ACES mappings/templates are "name-only list[str] ... (blocked surface)" — false against the structured mapping manifests encoded in the same PR. Fix the generated limits text.
  4. orborus filesystem manifest retains only 3 rows with no full tree in evidence (declared, but a corpus outlier vs backend's full-tree-as-evidence pattern). Retain the full tree.

All three bundles recapture against the running lab with updated capture scripts; SDL nodes regenerate; tests/ledgers/READMEs/parity rows updated to match.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions