Skip to content

Serve Doc Assets under /d/{opaqueId}/{assetPath} #40

Description

@wschenk

Parent

#39

What to build

Make Living Doc View Links serve Doc Assets on nested paths under the same opaque prefix as the View. Bare /d/{opaqueId} remains the rendered Markdown View. Nested /d/{opaqueId}/{assetPath} returns Blob bytes for that Living Doc with Unlisted posture (no-store, noindex), correct image content types, and 404 for missing paths, unknown docs, or removed Living Docs. No directory listing.

Introduce a Living-Doc-scoped Blob key/locator scheme (not the Publication artifacts/ prefix) and enough store/test seeding that later publish slices can upload into the same space. Follow ADR 0006 and glossary term Doc Asset.

Acceptance criteria

  • Nested /d/{opaqueId}/{assetPath} returns 200 with the expected bytes and content-type for an active Living Doc with a seeded Doc Asset
  • Bare /d/{opaqueId} still returns the HTML View (not an asset)
  • Missing asset path, unknown opaque id, and removed Living Doc all return 404 for asset URLs
  • Asset responses include Unlisted safety headers consistent with Publications/Living Doc views
  • Request-level tests cover the above with a fake Blob / in-memory Living Doc store

Blocked by

None - can start immediately

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentReady for an implementation agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions