[15/15] Table registration with explicit names and pre-deploy preparation - #168
Open
UnknownJoe796 wants to merge 15 commits into
Open
[15/15] Table registration with explicit names and pre-deploy preparation#168UnknownJoe796 wants to merge 15 commits into
UnknownJoe796 wants to merge 15 commits into
Conversation
UnknownJoe796
force-pushed
the
v53/predeploy-tasks
branch
from
July 29, 2026 22:54
33d0632 to
dbffe94
Compare
UnknownJoe796
force-pushed
the
v53/table-registration
branch
from
July 29, 2026 22:54
6b47c05 to
106ac7b
Compare
Rewrite docs/files.md to the v5 API: single UploadEarlyEndpoint with the upload-then-reference flow, jail/ready scanner quarantine, ServerFile in models, signed URLs, and the one-instance-per-server footgun. Replace the v4 HttpContent/FileObject examples with the TypedData/PublicFileSystem API and drop the removed Azure backend. Replace the docs/websockets.md TODO stub with real docs: WebSocketHandler lifecycle, pub/sub topics, MultiplexWebSocketHandler, typed ApiWebsocketHandler, and local vs AWS execution models. Add docs/migration-v4-to-v5.md covering the service-abstractions extraction, ServerBuilder / definition-vs-runtime split, dependency and import moves, and common pitfalls, deferring KiteUI client details to the ls5-kui7-migration skill. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit 3c6c27e) (cherry picked from commit 5bd3d6f)
Covers the complete set of changes to move a consumer from 5.1.x to 5.2.0, all verified against a real downstream app (USBE) that then ran locally and served its KiteUI web client unchanged: - Bump service-abstractions to the version 5.2 was built against (1.2.0-1-b2f7bd67); a mismatch compiles but throws NoSuchMethodError at runtime (SettingContext.getOpenTelemetry()). - New required AuthEndpoints/SessionManager `cache` parameter. - Telemetry moved from OpenTelemetrySettings to TelemetryBackend.Settings (both the code setting and the settings.json `"telemetry"` entry, which was previously `null`). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Uur4dHcoa1a259iiTzvin3 (cherry picked from commit 84978bc) (cherry picked from commit d2fd0af)
PasswordProofEndpoints, TimeBasedOTPProofEndpoints, and BackupCodeEndpoints built their constrainAttemptRate cache key from the raw input value while normalization happened only inside the rate-limited action. An attacker could therefore vary case/whitespace of an identifier to get a fresh limiter bucket per variant, dodging the limiter and its new exponential backoff. Resolve the principal handler and normalize the value before constructing the key, matching PinBasedProofEndpoints. Credential-matching behavior is unchanged. Tests assert case variants of one identifier share a single bucket. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit 7a2d926) (cherry picked from commit afcde3e)
Typed endpoints declare errorCases (LSError with status/detail/message), but only the success response was emitted. Emit each declared error case as a documented response grouped by HTTP status, using the LSError schema and an example, mirroring the success-response emission. Adds a test confirming error responses and path parameters appear in the spec (path parameters were already emitted at path-item level; the test locks that in). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit 9a9c0ef) (cherry picked from commit a2a3563)
Several auto-CRUD endpoints threw BadRequestException(detail="unique") on unique-constraint violations and NotFoundException on upsert/replace without declaring them, producing W6 "undeclared error" warnings at boot. Add shared notFoundError (404) and uniqueViolationError (400, "unique") LSError constants to the errorCases of every endpoint that throws them, so the errors are documented and the warnings stop. Read-only endpoints that never throw keep empty error lists. A test asserts each throwing endpoint declares the error it can raise. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit acc5281) (cherry picked from commit 69959ea)
The committed golden TS snapshots had drifted from the current generator. Regenerating disambiguates nested type names (Mode -> UpdateRestrictions Mode, Part -> UpdateRestrictionsPart), matching the generator's intended output. Changes are confined to the type definitions and their imports. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> (cherry picked from commit 22272fc) (cherry picked from commit 6286e37)
Making tableName required updated call sites in sessions, typed and files, but missed sessions-oauth, demo and the notifications tests. (cherry picked from commit 106ac7b)
UnknownJoe796
force-pushed
the
v53/predeploy-tasks
branch
from
July 30, 2026 02:20
dbffe94 to
63b320b
Compare
UnknownJoe796
force-pushed
the
v53/table-registration
branch
from
July 30, 2026 02:20
106ac7b to
1a5280d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reworks table handling on top of the pre-deploy task infrastructure.
registerTabledefines, registers and creates the once-per-deploy preparetask for a table in one call
Most of the file count is the documentation sweep; the behavioural change is in
DatabaseTableRegistration.kt,ModelInfo.ktandExtensions.kt.Includes a fix passing the now-required
tableNamewhere the explicitness passmissed it (sessions-oauth, demo, notifications tests). Without it those modules
do not compile.