Skip to content

Fix recoveryKey docstrings and clarify that REC1b2 endpoint has no port - #568

Open
sacOO7 wants to merge 1 commit into
mainfrom
rename-rest-to-http-public-api
Open

sacOO7 wants to merge 1 commit into
mainfrom
rename-rest-to-http-public-api

Conversation

@sacOO7

@sacOO7 sacOO7 commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Two small corrections found while aligning the 2.0 PubSub SDKs with the spec. Neither adds API or changes required SDK behaviour:

  1. Docstring citations. The recoveryKey and createRecoveryKey docstrings now cite current spec points instead of replaced ones.
  2. REC1b2 note. A non-normative note says that endpoint does not itself carry a port.

This PR is a single commit on main. An earlier version also renamed idempotentRestPublishing to idempotentHttpPublishing (TO3s), updated the UTS to match, and marked RSA10l "(deprecated)". Those changes were dropped and the branch was squashed. idempotentRestPublishing (TO3n), RSC22d, RSL1k1, RSAN1c4, RTL6a1, RSA10l, the IDL and uts/ are therefore unchanged from main.

1. api-docstrings: recoveryKey and createRecoveryKey citations

Both Connection rows cited RTN16b and RTN16c, which have been replaced:

  • RTN16b was replaced by RTN16g and RTN16m.
  • RTN16c was replaced by RTN16g2, which was in turn replaced by RTN16g3.

The recoveryKey row now cites RTN16g, which replaced it. The createRecoveryKey row cites RTN16g and RTN16g3. Only the citations change.

2. REC1b2: endpoint does not carry a port

REC1b2 gets an in-place note, in the "(Non-normative: ...)" form already used in the spec. It says three things:

  • endpoint identifies a host or routing policy only and does not itself carry a port.
  • A non-default port is set with port (TO3k4) or tlsPort (TO3k5).
  • For example, localhost:8080 is not a hostname under REC1b2: it has no ., contains no ::, and is not localhost. So REC1b4 treats it as a routing policy ID.

This only describes what the existing rules already do. It adds no requirement.

Specification version

The version stays at 6.3.0, and build/data/versions.yaml is unchanged from main. The README's Specification Version rules call for a minor bump when the SDK API changes compatibly or when SDKs must add new behaviour. Neither change does either:

  • The docstring change only corrects citations.
  • The REC1b2 note is non-normative.

Fixes of this kind on main have not bumped the version, for example f2e0dcd, b05edc7 and fd4ca01.

Out of scope / follow-up

  • IDL class names. RestClient, RestChannel, RestPresence and RestAnnotations keep their names. Any rename would affect every SDK and needs agreement across them first.
  • Wrapper-SDK proxy for HTTP clients. It is unclear how createWrapperSDKProxy (WP*, IDL RestClientInterface) maps onto the 2.0 SDKs' HTTP clients. That is a question of SDK conformance, not a spec change, so this PR leaves it out.
  • RSA10l authorise alias. This needs a cross-SDK decision: should the requirement be deleted now that 2.0 SDKs drop the alias? It is not marked "(deprecated)" here, because the spec reserves that marker for points that define a deprecated element or behaviour. Points that only require a deprecation warning, such as RTN4i and RTS4b, are unmarked.
  • A mismatch this PR leaves as it is. The createRecoveryKey docstring says it returns null when SUSPENDED, but RTN16g3 does not list that state.

Validation

  • Lint. (cd build && npm install && npm run lint) passes. It reports no duplicate spec items in features.md, chat-features.md or objects-features.md.
  • Review of each change. Each change was checked against CONTRIBUTING.md and CLAUDE.md by a reviewer who did not write it. The reviews confirmed three things:
    • No IDs are added or reused.
    • All anchors resolve (TO3k4, TO3k5, REC1b4, RTN16g, RTN16g3).
    • The REC1b2 note does not change behaviour.
  • Wording fix. One finding was fixed: the REC1b2 wording is now "does not itself carry a port", so it no longer reads as a prohibition.
  • Review of the final commit. A separate reviewer checked the single commit and confirmed:
    • The branch has exactly one commit on top of main.
    • Compared with the previous single commit, the only change is the RSA10l marker removal.
    • RSA10l is byte-identical to main.
    • idempotentHttp, TO3s, TO3n1 and TO3n2 do not appear anywhere in the repo.
    • uts/ is identical to main.
    • The only diff against main is the two docstring rows and the REC1b2 note.

@paddybyers

Copy link
Copy Markdown
Member

Where did we agree to do this?

@sacOO7 sacOO7 changed the title Rename idempotentRestPublishing to idempotentHttpPublishing (TO3s) 2.0 PubSub alignment: idempotentHttpPublishing (TO3s), UTS update, deprecation and docstring fixes Oct 29, 2026
@sacOO7
sacOO7 requested a review from ttypic October 29, 2026 16:49
@sacOO7 sacOO7 changed the title 2.0 PubSub alignment: idempotentHttpPublishing (TO3s), UTS update, deprecation and docstring fixes Deprecate RSA10l authorise, fix recoveryKey docstrings, clarify endpoint has no port (REC1b2) Oct 29, 2026
@sacOO7

sacOO7 commented Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

Where did we agree to do this?

Seems, change was originally introduced in ably-go as a part of renaming Rest to Http across all classes/properties, so it's reverted now. No other SDK is affected.

- api-docstrings: the Connection recoveryKey and createRecoveryKey rows
  cited RTN16b and RTN16c, which have been replaced. They now cite RTN16g,
  and RTN16g and RTN16g3. Only the citations change.
- REC1b2: add a non-normative note that endpoint identifies a host or
  routing policy and does not itself carry a port. A non-default port is
  set with port (TO3k4) or tlsPort (TO3k5). For example, localhost:8080
  is not a hostname under REC1b2, so REC1b4 treats it as a routing
  policy ID.

The specification version stays 6.3.0. Neither change adds API or
required SDK behaviour, so the README's rules call for no minor bump.
@sacOO7
sacOO7 force-pushed the rename-rest-to-http-public-api branch from b4d6eed to 39db2c6 Compare October 29, 2026 18:06
@sacOO7 sacOO7 changed the title Deprecate RSA10l authorise, fix recoveryKey docstrings, clarify endpoint has no port (REC1b2) Fix recoveryKey docstrings and clarify that REC1b2 endpoint has no port Oct 29, 2026

This branch was successfully deployed

1 active deployment
staging/pull/568 — 39db2c6b Deployed Oct 29, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants