Skip to content

Catalog rejection reasons: add TERMS_LIMIT_EXCEEDED + URI_UNAVAILABLE - #15

Closed
KonstantinMirin wants to merge 2 commits into
feature/ramp-102-relay-protofrom
feat/catalog-rejection-enum-extensions
Closed

Catalog rejection reasons: add TERMS_LIMIT_EXCEEDED + URI_UNAVAILABLE#15
KonstantinMirin wants to merge 2 commits into
feature/ramp-102-relay-protofrom
feat/catalog-rejection-enum-extensions

Conversation

@KonstantinMirin

Copy link
Copy Markdown
Contributor

What

Extends CatalogRejectionReason with two values the catalog-push path needs:

  • CATALOG_REJECTION_REASON_TERMS_LIMIT_EXCEEDED (8) — a single entry carries more license terms than the per-entry cap allows.
  • CATALOG_REJECTION_REASON_URI_UNAVAILABLE (9) — the URI cannot be claimed by this caller's entries.

Why URI_UNAVAILABLE is named from the caller's perspective (privacy)

It deliberately does not say "owned by another contributor." Within one publisher, mutually-untrusting contributors share a catalog, so an "owned by another" reason would be a confirmed-existence oracle a contributor could use to map a competitor's catalog. The conflict is resolvable only by the publisher (who is authorized to see full ownership); the human-readable message routes the caller there without confirming who, if anyone, holds the URI.

Generated code

Regenerated with the pinned toolchain (buf 1.66.1, datamodel-code-generator 0.64.0, json-schema-to-zod 2.8.1): Go, descriptor, validation corpus, and the Pydantic/Zod SDK types. The SDK-types pass also re-syncs gen/ts/wire/schemas.ts + gen/python/wire/models.py, which the base branch had left out of date — so sdk-types CI is green on this branch.

Stacking

Stacked on #14 (base feature/ramp-102-relay-proto); retarget to main as the stack lands.

…t reasons (RAMP-102)

CatalogRejectionReason lacked honest values for two rejection paths:
- TERMS_LIMIT_EXCEEDED (8): a single entry over the per-entry license-term
  cap (distinct from QUOTA_EXCEEDED, which is a per-caller push quota).
- URI_UNAVAILABLE (9): the URI cannot be claimed by this caller. Named from
  the caller's own perspective ON PURPOSE — it must NOT disclose that another
  resource/contributor already owns the URI. Within one publisher, mutually-
  untrusting contributors share a catalog, so an 'owned by another' reason
  would be a confirmed-existence oracle for mapping a competitor's catalog.

Regenerated Go/TS/Python. buf lint + canonical round-trip + doc-conformance pass.
…on-enum-extensions

# Conflicts:
#	gen/descriptor.binpb
#	gen/ts/wire/schemas.ts
@KonstantinMirin

Copy link
Copy Markdown
Contributor Author

Superseded by and included in #17. This PR's commits are ancestors of feature/go-sdk-extraction — every commit here is already contained in #17, which is the authoritative consolidation of the SDK-extraction line against main. Closing as obsolete; the branch is retained so these commits stay diffable.

legendko added a commit that referenced this pull request Jul 9, 2026
SDK extraction (go/ts/python L1+L2) on snake_case wire; consolidates #12/#13/#14/#15
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