Repository navigation
Update dependency @tailor-platform/sdk to v2.35.0 - #139
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/tailor-platform-sdk-2.x
branch
from
October 27, 2026 00:52
1b96c09 to
ff9789b
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.
This PR contains the following updates:
2.33.0→2.35.0Release Notes
tailor-platform/sdk (@tailor-platform/sdk)
v2.35.0Compare Source
Minor Changes
#2810
41bf7eaThanks @toiroakr! -tailor tailordb migration generate --initnow accepts--namespace <name>to reset only that namespace'smigrations/directory and recreate its0000. Other namespaces' migration files are left untouched, and the confirmation lists only the target namespace. Without--namespace,--initstill deletes the migrations of every namespace that has migrations configured.#2713
545cf4fThanks @toiroakr! - The PGlite schema fromkyselyTypePluginand thedb.pglite.tswritten for a migration now reject deleting a parent, or changing the key a row points at, while a row still points at it through an array field or a field inside a nested object, as the platform does. A test that deletes a parent before the rows pointing at it now fails withviolates foreign key constraint; delete the child rows first.Patch Changes
#2795
30281c1Thanks @dqn! - Fix bundling of a.start()call on a local variable that shares its name with an imported workflow or job when the variable is declared in aswitchcase, a named class expression, a namespace, or a static block. The bundler rewrote the call or failed instead of leaving it as written.#2817
9ff6bcfThanks @toiroakr! -tailor deployno longer fails when it cannot restore the secret vault of an IdP client whose name the platform rejects when reading the client, such as a name shorter than three characters. It prints a warning for that client and continues.#2815
1ee6cc5Thanks @dqn! -tailor tailordb migration generateno longer writes a10000migration directory, which no command reads, after a namespace reaches migration 9999. Before writing, it now checks that every namespace has enough migration numbers left, including with--data-onlyand for a field type conversion, which needs two. If any namespace does not, it fails withMIGRATION_NUMBER_EXHAUSTEDwithout writing a migration in any namespace, and the error names thetailor tailordb migration rebaselinecommand to run.#2794
45e5b65Thanks @dqn! - Remove@__PURE__and@__NO_SIDE_EFFECTS__comments from bundled resolvers, executors, workflow jobs, auth hooks, HTTP adapters, andtailor function runscripts, and minify the scriptstailor queryruns, to make them smaller.#2793
ca193b9Thanks @dqn! -tailor deployno longer runs a migration'smainscript again after it could not confirm whether an earlier run of it succeeded (MIGRATION_OUTCOME_UNKNOWN), including with--no-schema-check, in a namespace without a migration checkpoint, and after the deploy process stopped while the script ran. The migration now stays recorded as in progress while its script runs, and until you settle a run the deploy could not confirm,tailor deploystops before changing anything withMIGRATION_OUTCOME_UNSETTLED, which reports how the run stands.Settle such a run with
tailor tailordb migration resolve:--completewhen it succeeded,--rollbackwhen it failed, was canceled, or did not start.resolvenow reads how the run ended, shows it (runStatusunder--json), and warns when the option you passed does not fit. The earlier advice to runtailor tailordb migration syncno longer applies to these runs:syncrefuses to run while the migration is recorded.tailor tailordb migration statusreports the run as in progress, withinProgressMigrationRun: "main"under--json. Earlier SDK versions cannot read this record and refuse to deploy until the migration is settled.#2795
30281c1Thanks @dqn! - Field and table definitions written withdbandtin your own code no longer keep an otherwise unused call in bundled resolvers, executors, workflow jobs, auth hooks, andtailor function runscripts, which makes bundles that import shared schema modules smaller.#2729
bfe410fThanks @toiroakr! -.unique()and.index()on a field insidedb.object()are now applied to the deployed schema. Before, they were recorded in the migration snapshot but sent to the platform as off, so duplicate values were stored, and the nexttailor deployof a project with such a field stopped withMIGRATION_REMOTE_DRIFT, andtailor tailordb migration validatefailed the same way. The PGlite schema thatkyselyTypePluginand the migrationdb.pglite.tsgenerate now enforces.unique()on such a field too, so local tests reject the duplicates the platform rejects. After upgrading, runtailor deploy --no-schema-checkonce to apply the setting; later deploys need no flag..unique()and.index()on a field inside an array of objects (db.object(..., { array: true })) now fail with an error, because the platform does not reject duplicate values there. If stored rows already hold duplicate values for a field that gains.unique(), that deploy fails with a unique index error and the schema stays unchanged until the duplicates are resolved.v2.34.0Compare Source
Minor Changes
#2669
f59f06eThanks @dqn! - ThetailorCLI and its command groups, such astailor tailordbandtailor workspace, and the setup, seed, and TailorDB ERD plugins now exit with code 2 when run without a subcommand and given an unknown option or an invalid option value, including one set through its environment variable. They previously printed their help or a warning, or ran their default subcommand, and exited with 0. A script or CI job that passes a mistyped option after a group name, such astailor workspace --bogus, now fails with 2 instead of printing a warning and exiting with 0.--no-jsonand--no-verbosenow turn JSON output and verbose logging off, where they were previously ignored with a warning, so--no-jsonalso turns off the JSON output an AI coding agent gets by default.--no-verboseand--verbose=falsealso overrideDEBUG=trueandRUNNER_DEBUG=1, which previously kept verbose logging on. Likewise, settinglogger.verbosefrom@tailor-platform/sdk/clioverrides them, and setting it toundefineddefers to them.#2708
bc16821Thanks @toiroakr! - A relation set on a field insidedb.object()now becomes a foreign key on that inner field, in the deployed schema and in the PGlite schemakyselyTypePlugingenerates. Before, the relation was accepted but had no effect, so a row pointing at a missing parent was stored. For a project that already has such a relation, the nexttailor deploystops with a schema check error until you runtailor tailordb migration generate, which records one non-breakingfield_modifiedchange. Values already stored are not checked when the foreign key is added; after that deploy, the platform rejects a nested value that points at a missing parent.#2755
9ddec31Thanks @toiroakr! - AddedbuildOptions.inlineSourcemapProjectSourcesto choose which of your own source files embed their text in the inline sourcemap.exclude: ["src/generated/**"]leaves out the text of generated files, andincludekeeps only the matching files. The globs are relative to the directory containing your config file. Files undernode_modulesstay controlled byinlineSourcemapDependencySources.Patch Changes
#2769
c9bc40bThanks @dqn! - Internal: the build-only result ofdeploy, used by the SDK's own tests, now also includes HTTP adapter bundles grouped by application name. A build-only deploy now rejects two configs that share an application name and both define HTTP adapters, which a regular deploy already rejects.#2767
4c42666Thanks @dqn! -tailor deploy --dry-runno longer asks to confirm resource deletions, owner conflicts, unmanaged resources, or missing dependent applications, so it reaches the plan without--yes, including under--jsonor without a terminal. The warnings that list those resources are still shown, and the warning that lists the TailorDB migration checkpoints the deploy would reset is now shown too.With
--dry-run --json,warningsnow also has atype: "missingDependentApp"entry for each resource whose recorded dependent application is missing from the deploy. Before, this was only printed to stderr.#2749
468bd4bThanks @dqn! - Internal refactor of the ownership checkstailor deployandtailor removerun on existing resources. No observable behavior change.#2752
b09d3c9Thanks @dqn! - Internal refactoring:tailor tailordb migration generatenow handles field, table, and nested member renames and drops with one shared implementation. Prompts, error messages and codes, and JSON output are unchanged.#2787
039f6f5Thanks @dqn! -tailor tailordb migration generateandtailor tailordb migration scriptopen the file they scaffold inEDITORorVISUALonly when they run in an interactive terminal outside CI. Run from a script, a CI step, or an agent shell with human output, they used to start the editor and wait for it with no terminal attached, so the command hung. An editor that opens its own window, such ascode --wait, also no longer opens when the command's input or output is piped.#2780
8000bebThanks @dqn! -tailor deployand everytailor tailordb migrationsubcommand exceptscriptnow reject a migration directory that hasmigrate.tsor other generated files but nodiff.json. Previously, such a leftover in the latest migration number let the nextmigration generatereuse that number and deploy run the stale script. They also reject adiff.jsonin0000/, which was previously ignored.tailor tailordb migration statusnow reports invalid migration files as an error for that namespace.#2792
66c8c85Thanks @dqn! -tailor tailordb migration resolvenow refuses to run when the in-progress migration is not the one right after the checkpoint. Previously,--rollbackmoved the checkpoint forward in that state, and--completemoved it past migrations whosemigrate.tsnever ran.#2750
0628ad3Thanks @dqn! - Build resolver, executor, workflow job, and auth hook bundles through one shared step. Bundled output is unchanged.#2748
35ce933Thanks @dqn! - Internal refactoring: remove unused internal helpers from the plugin manager, the TailorDB migration modules, and the SDK's own test setup. No user-facing behavior change.#2786
deeb82fThanks @dqn! - Long-runningtailorcommands, such as a deploy waiting on a migration job,tailor workflow start --wait, ortailor function logs --follow, no longer fail with[unauthenticated] ... invalid tokenwhen the access token expires partway through. They renew the token when it is about to expire, and retry a request once with a new token if the Platform rejects the one it sent. A client frominitOperatorClientin@tailor-platform/sdk/cli, created with a token fromloadAccessToken, does the same and may refresh and save the stored login while it runs. Commands that useTAILOR_PLATFORM_TOKENor a machine-user login are still limited to the token's lifetime. The notice that a newer config version is available now appears once per command instead of on every read of the config.#2762
30b9fa8Thanks @renovate! - fix(deps): update oxc#2765
eb01ec6Thanks @renovate! - fix(deps): update dependency @politty/zod to v0.6.0#2797
f202845Thanks @renovate! - chore(deps): lock file maintenance#2804
8c20b0bThanks @renovate! - fix(deps): update dependency amaro to v1.2.2#2805
c0641d2Thanks @renovate! - fix(deps): update dependency rolldown to v1.2.15#2709
6eb202fThanks @toiroakr! -tailor deploynow fails when a vault declared indefineSecretManager()has the same name as the vault the SDK creates for one of the application's IdP clients (idp-<namespace>-<client>), because the two would share one vault and the built-in IdP configuration in Auth could read a secret that was overwritten by the declared value. If the application already manages a vault with that name, renaming it and removing the declaration both delete the old vault and its secrets on the next deploy, including the secret of an IdP client that already exists, and the error says so.#2788
eabbd2eThanks @toiroakr! -tailor deploynow warns when a vault declared indefineSecretManager()has a name that starts withtailor--(two hyphens, so that names such astailor-reportsstay free). The prefix is reserved in advance for the platform and has no use today. The warning does not stop the deploy, and these names will be rejected in v3.#2782
b09cb46Thanks @dqn! - Fixtailorcommands that run at the same time breaking each other's login. When several commands found the stored token expired, each refreshed it, and all but one failed withAUTH_TOKEN_REFRESH_FAILED; sometimes the stored refresh token was left unusable, and every later command failed until you rantailor loginagain. Commands now refresh one at a time and use the token another command already stored.tailor logoutalso waits for a refresh in progress, so the refresh no longer restores the user it removed.The CLI now refreshes a token that expires within five minutes, so a command no longer starts with a token that is about to expire. Until the current token expires, the CLI keeps using it if that early refresh fails or another command is already refreshing.
loadAccessTokenfrom@tailor-platform/sdk/clifollows the same rules. The config file is now replaced in one step, so a command reading it while another writes it no longer fails to parse it.#2576
07611f5Thanks @toiroakr! -tailor setup ci previewtakes--require <ready|label>instead of--require-preview-label. By default every pull request now gets a preview, draft pull requests included, which the generated workflow used to skip.--require readyskips draft pull requests and also triggers onready_for_review, so a draft that is marked ready for review gets its preview right away instead of waiting for the next push.--require labeldeploys only pull requests labeledtailor:preview, as--require-preview-labeldid, and now also for a labeled draft. The requirement is recorded in.github/tailor.lockasrequire, sotailor setup updateregenerates the same workflow.--require-preview-labelis removed: use--require label.setupremains a beta command, so this ships as an immediate change rather than going through a deprecation cycle. A preview target recorded before this change is read bytailor setup updateas--require ready, or as--require labelif it required the label: the first keeps skipping drafts and gains theready_for_reviewtrigger, and the second now also deploys a labeled draft. To deploy drafts as well, runtailor setup ci previewagain without--require.#2779
5461ed7Thanks @dqn! - Fix inline sourcemaps embedding the source text of files undernode_modulesthat belong to no package, such as a generated client innode_modules/.prisma, whenbuildOptions.inlineSourcemapDependencySourcesisfalseor a package list. Such files are now embedded only when the option istrue, andtailor function runandtailor function logsread their code snippets from your local files.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.