feat(342): per-model Column Projection toggle (model Settings tab)#45
Open
kennethphough wants to merge 1 commit into
Open
feat(342): per-model Column Projection toggle (model Settings tab)#45kennethphough wants to merge 1 commit into
kennethphough wants to merge 1 commit into
Conversation
Adds a "Column Projection" switch to the model detail Settings tab that reads/writes the allow_projection flag inside the model's controller_config JSON column (kyte-php v4.16.0). Mirrors the existing Sensitive toggle: inline auto-save via a partial DataModel PUT (no `name`, so the server skips the table-rename path) with revert-on-failure. Merges into controller_config rather than clobbering so future flags are preserved. - app/model/index.html: second Settings-tab card + switch markup - kyte-shipyard-model-details.js (source): parse/merge/PUT + prefill + revert - i18n en/es/ja/ko: projection_* keys - CHANGELOG: 2.4.0 entry Requires kyte-php v4.16.0+ (controller_config column + projection opt-in). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Summary
Adds a Column Projection switch to the model detail Settings tab. It reads/writes the
allow_projectionflag inside the model'scontroller_configJSON column (new in kyte-php v4.16.0). When on, the model's list/read endpoints honor the client'sX-Kyte-Fieldsheader and return only the requested columns instead of the full row — the user-facing, no-code enablement for the KYTE-#190 projection engine.This is deliverable #2 of KYTE-#342 (DB-driven controller config). Backend deliverable #1 (the
controller_configcolumn + resolution chain +allow_projectionwiring) merged in kyte-php PR #123 and is dogfood-verified on dev19.What it does
controller_config.allow_projection.controller_configobject and sets onlyallow_projection, so any future flags are preserved.DataModelPUT ({ controller_config: "<json>" }). Nonamein the payload, soDataModelControllerskips the table-rename path (same safe partial-update path the Sensitive toggle uses). Revert-on-failure.projection_*keys added to en/es/ja/ko.Behavior / compatibility
controller_config).controller_configtriggers the existingclearModelCacheon DataModel update, so the change takes effect on the next request.Verification
node build.mjsclean (esbuild, no syntax errors); all four locale JSONs parse.updatecase inDataModelControllerexplicitly supports metadata-only partial PUTs (the same pathsensitiveuses).X-Kyte-Fieldsheader (PR feat: Shipyard 2.0.0 — JWT default + esbuild pipeline + sensitive/auth_mode toggles #39) on the client for the visible payload trim.Note on built assets
Only source is committed (
assets/js/source/, HTML, i18n, CHANGELOG). The minifiedassets/js/*output is gitignored and rebuilt by CI/release.🤖 Generated with Claude Code