Skip to content

feat(ipa0132): Add IPA-132 Long-Running Operations (experimental) - #119

Open
julius-jogela wants to merge 11 commits into
mainfrom
cloudp-418892-ipa-132-lro
Open

feat(ipa0132): Add IPA-132 Long-Running Operations (experimental)#119
julius-jogela wants to merge 11 commits into
mainfrom
cloudp-418892-ipa-132-lro

Conversation

@julius-jogela

@julius-jogela julius-jogela commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds IPA-132, the experimental Long-Running Operations guideline set (LRO classification, Operations endpoint conventions, OperationResponse schema, retry/retention/expiry semantics).

  • Follow-up cleanup after initial review: fixes stray whitespace, drops a restatement-only workflow, relocates the retention default into schema comments, updates example operationIds to match the new generation logic, removes redundant dependsOn self-references, and scopes retryAfterSeconds to non-terminal operation states.

  • All follow-up cleanup is documented in the Changelog tab of the IPA-132 Google Doc.

Publishes IPA-132 as an experimental guideline, porting all 21 guidelines
for classifying, initiating, and observing long-running operations,
verbatim from the approved guideline source. Adds the `list-operation`
and `lro-schema` given aliases needed by the new guidelines.

CLOUDP-418892
Points the operation-response guideline's OperationResponse mention at
the schema section anchor, matching how IPA-114 links ApiError.
The given="lro-schema" alias already resolves silently through
guideline.ts, like every other given alias in the repo. No guideline
table anywhere else explains an alias inline, so remove the
one-off sentence here too.
…iError

Drop the inline JSONPath lead-in sentence so the section goes straight
from heading to schema, matching IPA-114's API Error Format section, and
add a concrete Example instance underneath.
…amples

Prettier's proseWrap breaks long path code spans mid-string when they
contain path parameters, reintroducing literal spaces in rendered
paths. Reword the two affected sentences so each path starts its own
line and stays intact.
@julius-jogela julius-jogela changed the title IPA-132: Long-Running Operations (experimental) feat(ipa0132): add IPA-132 Long-Running Operations (experimental) Aug 5, 2026
@julius-jogela julius-jogela changed the title feat(ipa0132): add IPA-132 Long-Running Operations (experimental) feat(ipa0132): Add IPA-132 Long-Running Operations (experimental) Aug 5, 2026
Comment thread ipa/general/0132.mdx
<Guideline id="IPA-132-operations-must-expire-after-a-finite-retention-period" given="lro-schema" enforcement="review" effort="explore" implementation dependsOn={["IPA-132-operation-endpoints-must-return-operation-response"]}>

Operation records **must** be transient: they **must** expire after a finite
retention period, exposed via an `expiredAt` timestamp on the Operation schema

@matt-condon matt-condon Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we use expiresAt instead?

ipa/ipa/general/0121.mdx

Lines 72 to 74 in 4534a04

Enumerate every schema property and parameter whose name, description, or
example indicates it carries a point in time (`createdAt`, `updatedAt`,
`expiresAt`, `timestamp`, `startTime`).

Can expiredAt apply for a future event?

Comment thread ipa/general/0132.mdx
properties:
status:
type: string
enum: [PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED, SUPERSEDED]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there somewhere we can define/describe these enums?
For example SUPERSEDED might not be intuitive

@matt-condon matt-condon left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM no blocking comments and the IPA is experimental so changes could be considered in this PR or a follow-up

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.

2 participants