Document the execserver slot broker (6.35) - #9
Open
martinrode wants to merge 86 commits into
Open
Conversation
Rewrite the execserver + performance-tuning pages for the fylr 6.35 slot broker, replacing the removed GET /token + PUT /job polling model and the parallel/parallelHigh/waitgroups defaults with the broker protocol and auto-balancing. Bring the slot-broker white paper in line with what shipped: the legacy transport is removed in 6.35 (not a later release), there is no polling fallback (execserver and fylr upgrade together), and add the auto-balance and graceful-drain sections. Held on the v6.35 branch until 6.35.0 is released, since docs.fylr.io tracks main and these pages still describe the released 6.34 behaviour.
… license capabilities
Regenerated from a pristine fylr on main (34c58b676): GET /plugin/marketplace + /plugin/marketplace/{name}/readme, the plugin-manage license capability/not_licensed/encrypted fields, and default-cookbook recipe description updates. 3.0 from /inspect/apidocs/spec/spec-gitbook.yml, 3.1 datamodel-generic from spec.json (Go-style HTML escaping preserved).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rface for db_pre_save callbacks (#80077)" This reverts commit 98568cc.
…mark api_tx_url Plugin Manager: the plus button now opens the marketplace (categories, README view, dependency resolution, sealed delivery); new license-gated plugins section. License management: the license's plugin capability map (named+granted / named+refused / unnamed). callbacks.md: mark api_tx_url as available from 6.35.0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…6.35.0) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…c into the new layout The api_tx_url documentation (#80077, reapplied on this branch against the old monolithic callbacks.md) moves into the new pages: the info-map row and the 'Writing inside the save transaction' section live in callbacks/contract.md, with a pointer from callbacks/db-pre-save.md. While porting, the hook family was corrected against the fylr code: api_tx_url is present for db_pre_save, transition_db_pre_save and the collection-upload objects callback (any callback whose tokens are minted inside the open write TX, oauth/plugin_user.go leasePluginTX), and absent for extensions, exports and workflow webhooks — webhooks never go through PluginLoginUser, so the earlier 'webhook_db_pre_save' mention was wrong. see #80334 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… claim The doc stated writes join the save's transaction via a savepoint; per Martin there is no savepoint. The author-facing contract is unchanged and stated implementation-free: writes run inside the save's own transaction, are immediately visible to it, and commit or roll back with it. see #80334 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…estriction A failed write on the transactional surface fails the save as a whole — refused at commit, nothing durable, further writes refused — even if the callback swallows the error; failed reads are harmless. await_index is not available there (index jobs only become visible once the save commits). Matches the landed fylr 6.35.0 behavior (fylr 2011b1984, sqlpro 78698e7) and the write_db_tx fail_swallowed apitest. see #80077 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Spherical videos and panoramic images carry a projection_type key in their technical metadata from 6.35.0. Adds the key to both OpenAPI spec assets (surgical edit, no full resync) and a paragraph to the metadata-extraction section explaining the sources and why only the original carries the marker. Same change as ced2898 on main, applied to the 6.35 docs branch. see #80367 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
POST /eas/produce accepts video parents from 6.35.0: trim, mute, rotate in steps of 90 degrees, mirror, crop, scale to a height and the color grading controls, with mp4/mov/m4v as target formats. Adds the new request fields to both OpenAPI spec assets (surgical edit of the /eas/produce path, no full resync) and a section to the endpoint page that splits the options by parent class and states the async pending/done/failed contract; the file-worker page's modified-original bullet mentions the video options. Also from 6.35.0, the produce recipe's extension list is the only gate on what can be produced, which makes webp sources producible. see #79791 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…te on loginAllowRedirects) From 6.35.0, origins matching loginAllowRedirects are also trusted for credentialed CORS (reflected in Access-Control-Allow-Origin together with Access-Control-Allow-Credentials), like the fylr.externalURL origin and the redirect-URI origins of registered OAuth2 clients. Mirrors the fylr.example.yml comment added on fylr main (75146265d). see #79575 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…(6.35 execserver config) Syncs the inlined config pages to the fylr 6.35 sources for the execserver slot-broker/auto-balance rework: the tuning keys cpus, fastReserve, heavyThreshold, unknownShare and drainTimeoutSec replace parallel/parallelHigh, the per-service waitgroup defaults (fast/medium/slow) are gone, tokenResponseSendServerIP is removed and the optional callbackBackendOwnURL is added. Mirrors fylr dc23ded29 (#80119) and the parallel deprecation (#80133). see #80119 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Mirrors the apidocs change on fylr main (1baae56a2): GET /api/v1/user/session stops echoing the caller's token. see #79573 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ed fylr.example.yml The top-level fylr.s3 storage config has not existed in the code since 2022; storage is configured per location under fylr.db.init.locations. Mirrors the fylr.example.yml cleanup on fylr main (d19999afb). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The download dialog's file name section, "include file variants" option and custom rendition section are gated per user/group by the new frontend_features "Download Options" right from 6.35.0. Version-marked so readers on older versions know it isn't theirs yet. see #80363
…(6.35.0) The audio convert recipe's format (m4a, mp3, aac) and bitrate params are documented in the recipe-configuration table, the default-version table names the M4A container and corrects the audio preview description (cover art, not waveform). see #80318 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…eenshots, settings + API reference New chapter for the fylr supervisor (#76257): overview/architecture, installation (systemd, bootstrap config, first-boot env seeding), instances (create/copy with consent, hibernation, logs incl. client-IP column), storage locations (explicit disk location, S3, read-only attach), backups & copies, router/TLS/rate limits/abuse shield, binaries registry + managed branch instances with provisioning presets, central licenses, infrastructure pages, a full settings reference and the management-API endpoint reference. Screenshots come from a generic demo fleet, not from any real deployment. see #76257 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…mermaid architecture diagram see #76257 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
see #79583 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…y explanation, clearer settings reference The Introduction gains a quick start that secures the management API right after the first boot. Installation explains what `fylr+:` merges into (the embedded default configuration — a plain `fylr:` would replace the whole block). The settings reference now separates the bootstrap file (dot-notated `fylr.supervisor.db.*` keys) from the runtime settings, grouped and strictly one key per row with explicit defaults. see #76257 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…de scope notes (fylr 6.35) see #79583 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e scope notes (fylr 6.35) see #79583 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…sh (fylr 6.35) /eas/produce and /eas/download format enums gain heic (and the download enum the missing webp); the "format unchanged" description documents the fallback to the recipe's default output format for extensions that can be read but not written (e.g. jfif). see #80418 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…resh (fylr 6.35) The /schema/user/HEAD and /schema/commit 400 descriptions and the DatamodelError TypeChangeUnsupported bullet now document that type changes are validated against the committed datamodel regardless of data — the save applies the same checks as the commit, uncommitted columns can still take any type. see #80049 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nder The spec assets are re-rendered below from fylr main (6.35); the file-worker page keeps this branch's 6.35 produce-options bullet. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… the triggering client's address (fylr 6.35.0) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> see #80431
…s (fylr 6.35) The section still told readers to secure an open management API by PUTting basic_auth_user/basic_auth_pass. That pair is retired: the API and UI authenticate against management users in the control DB, always, and the first boot seeds root/admin with a forced password change. New page "Management access" covering the first login, the three credential paths (session cookie, API token, basic auth as the transition path), user administration, TOTP, tokens, the abuse-shield coupling and the locked-out procedure. The quick start, the installation page, the settings reference and the API page follow, and the API page gains the /login, /session, /users and /tokens endpoints. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> see #76257
…rings, ISO form, years, B.C., ranges (fylr 6.35.0) see #79873 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…(fylr 6.35.0) A failed automatic update now retries every 10 seconds under every policy and cleans up after itself (the broken download and the superseded zip are removed); the installed version keeps running untouched. New timestamps table for the General tab: Updated At moves only when the stored plugin content changed — a settings-only save (Active, update policy) no longer touches it; Last Checked At counts completed checks only. The Daily policy wording follows the implementation (once a day, not every 24 hours). Surgical spec refresh: the PluginManageApi created_at/updated_at/last_checked_at descriptions. see #80400 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The manifest reference did not mention the new server-level plugin.dependencies key: named dependencies gate install/enable (PluginDependencyNotInstalled, PluginDependencyNotEnabled), protect depended-on plugins from disable/delete (PluginRequiredByOthers) and order the frontend bundles. A hint marks the webfrontend-level dependencies list as still honoured but deprecated. see #80102 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…and views that live in the URL Three additions for 6.35.0, each marked with the version so readers on older instances know it is not theirs yet. Certificates for a host are issued when an instance takes it, not in front of whoever opens it first; on-demand issuance stays as the fallback. A web-only host's instance page offers its /webOnly entry alone — a root session inside an instance nobody goes there to use was the wrong offer. The instance list's filters, sort and page, an instance's open tab and a log's source, level and day are query parameters now, so a reload keeps the view and the address bar is a link to it. see #76257 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…6.35.0) fylr 6.35.0 renders EPS and AI with ghostscript and decides from these counts whether such a file gets an SVG version at all, so the field is documented in the technical metadata table and in both mirrored openapi specs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A new page under Configuration: what unknown and deprecated keys are, the startup warnings, the Config Problems table on /inspect/config, and "fylr config check" for validating a configuration without starting a server — including its exit code, which is what makes it usable in a pipeline that renders a configuration. fylr.example.yml.md is regenerated from the corrected example config: the duplicate marketplace block is merged into one, the plugin default is documented under update_policy (the key "update" never existed), the deprecated debug.disableHttp2Client is no longer set, the oauth2 internalURL lost its trailing slash, and licenseFile/license are both commented out since they are mutually exclusive.
…6.35.0) Until 6.35.0 the same dead token got three different answers — 400 InvalidToken from /user/session and /oauth2/refresh, 401 UserRequired from everything else, 401 InvalidToken from a plugin callback — so a client checking the status alone did not notice on the session endpoint or on the refresh, and one checking the code did not notice anywhere else. InvalidToken is one error with one status now, and the responses report package ferrors. The spec gains an InvalidTokenError schema; /user/session and /oauth2/userinfo document 401 instead of 400, and the /user operations' 401 is either UserRequired (no token was presented) or InvalidToken (the token was rejected). The OAuth2 page explains the split under "Using the Access Token", including what a client that must work against 6.34 and 6.35 should key on. see #80899 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A location that failed to connect used to stay in "error" for the whole life of the instance, so the Status column was effectively a verdict from startup. It is the live state now: fylr retries an unreachable location every 5 to 30 seconds and logs the recovery, and a location whose storage arrives moments after fylr does turns "connected" on its own. The page said only that fylr "tests the connection and displays the result". A "Connection status" section now says what the states mean, where else they are shown (/inspect/system/locations/), and what changed in 6.35.0. Both OpenAPI assets get the same fact through a surgical splice of the LocationApi `status` and `status_msg` descriptions, matching the apidocs source in fylr (bb046a5f0) — no full re-render. see #80906 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ints edit Main had moved 44 commits ahead (Drupal plugin page, disk-to-url migration, the S3 connection-count page, the produce-plugin page, the 6.34.2/.3/.4 release pages, GitBook change requests). Merging now keeps the release-time merge of v6.35 into main small. Three files conflicted, all resolved with the v6.35 side: * Both OpenAPI assets — v6.35 carries the fresh 6.35 render plus every surgical splice made on the branch; main's were re-synced from a patched 6.34.2 render. Checked what that resolution would drop: main's session-binding edit (df95a3c) is already in the 6.35 render in newer wording (it also covers the share-link `?login` exception), so nothing was lost there, but main's skip_constraints rewording (1a6509e, v6.34.3) was genuinely missing — its asset hunks are applied on top of the resolution, matching the apidocs source in fylr (`resources/apidocs/endpoints/event/event.yml`). Both specs re-parse. * `for-developers/changes-easydb5-fylr.md` — both branches carry the rewritten page; they differ in one sentence, where v6.35 corrects the claim that fylr is an OpenID Connect provider. That correction describes 6.35 and stays on the branch until release. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… one instance Two management-API rules from the 6.35.0 review, documented where the pages already describe the surface they belong to. Replacing an armed TOTP now asks for the password and a current code, because the fresh secret is stored unarmed: an enrollment somebody starts and abandons used to leave the account with no second factor at all, which is the opposite of what opening that dialog is for. A host is claimed once across the fleet. Create and restore always refused a duplicate; editing an instance did not, and two instances answering for the same name leave the router picking between them per request. Both ship with 6.35.0 and land on gitbook main with this branch. The whole supervisor section is new in 6.35.0, so neither rule is version-marked inside it. see #76257 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…6.35.0) GET /user/<id> delivers the same compiled group list as GET /user/session in 6.35.0 — system groups implied by the user's type first, then the groups assigned in the database, then the groups that claim the user through an _auth_method_group_maps.system rule. UserApi._groups and SessionApi.groups document that order, and the one difference between them: the session list is compiled against the request, so a group with an _ip_subnet_filter only shows up there when the caller's IP matches, while the user record lists it either way. AutomaticAuthApi is re-documented for what it actually is: the marker on a group inside a user's group list saying the membership was not assigned by hand. Its type tells the kinds apart — implicit (follows from the user's type), system (a group rule claims the user), ldap / sso (mapped from the identity provider at login) — and the implicit and system entries are ignored on write. GroupApi._automatic_auth says it is never set on a group read from /api/v1/group. Both spec assets are spliced from a fylr main render; nothing else changed. see #80393 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
From 6.35.0 a callback never receives the token its caller presented, so the "already unbound tokens are passed through" half of the note is gone and the revocation applies to every callback token. see #80923
Both inlined config pages carry the new fylr.trustProxyHeaders setting, regenerated mechanically from fylr.example.yml and internal/global/fylr.default.yml and verified to round-trip back to their sources. The multiple-fylrs page gets the note where it is actually needed: that setup puts Apache in front of containers listening on 127.0.0.1, which is exactly the shape that has to turn the setting on. It is version-marked, because a reader on 6.34 has nothing to set. Nothing here says what the behaviour was before — the page describes what to configure, not what used to happen. see #80926 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
fylr.example.yml.md is regenerated from the source file and round-trips back to it. It now carries the fylr.trustProxyHeaders key itself: cf2f380 brought over the block explaining the setting, but the source had only the comment and no key line, so the page explained a setting a reader could not find a line for. Fixed in fylr 42a9be38bc, which is also where the rest of this comes from. The other additions are settings that had never appeared on the page at all: the whole fylr.twoFactor section, a storage location's read_only, the s3 pathstyle — which defaults to true in fylr, the opposite of what a reader who knows AWS would assume — the file backend's remote_url_prefix, the two debug knobs twoFactorTestCodes and fileQueueStaleAfterSec, and a commented fylr.supervisor block saying why db is the only supervisor key in fylr.yml. None of them are new in 6.35; they were simply undocumented, which is why nothing here is version-marked. The 2FA tutorial already told the reader that wrong codes are limited to three attempts. It now names where that number and the code's lifetime are set, because both live in fylr.yml rather than in the base configuration the rest of that page walks through. fylr.default.yml.md is unchanged and still round-trips: the default file did not change. see #80926 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The 6.35 execserver is described in three places already — the protocol on the Exec server page, the design in the slot broker white paper, the settings under performance tuning — but none of them says what to DO with an existing installation. This adds that page, next to "Scaling the execserver": upgrade both sides in one window, run "fylr config check" and act on the four settings it names (tokenResponseSendServerIP is unknown now, parallelHigh deprecated, parallel only meaningful as 0, the callback URLs no longer supply a host), choose auto-balancing or complete an existing waitgroups block, configure a tempDir so the learned profile survives a restart, and move a Kubernetes deployment from per-pod addressing to /readyz + /healthz + a grace period above drainTimeoutSec. Every log line and message quoted is the one the server emits. The pages that end in this decision now link to it: the Exec server page, the scaling page, performance tuning, and the "Token not found" article whose solutions still name tokenResponseSendServerIP. Two corrections along the way: an explicit waitgroups block does NOT require a waitgroup on every service — a service naming none lands on a shared "auto" pool with a warning, it is not rejected — and the learned profile only survives a restart when a tempDir is configured. The /inspect system page gains the topology subpage, which was missing from its table.
…oks for it The topology page had one line in the /inspect system table and a paragraph on the developer Exec server page — so "the fleet topology page reports it" in the 6.35 update article pointed at a page that did not describe it. It gets a section of its own now: what it shows, and the three questions it answers for an installation with more than one moving part — every execserver connected, a balanced address reaching the whole fleet, and callbacks that come back to the process that created the job. Both references in the update article link the section directly.
Taken from the local broker-topology harness (bin/topology.sh): three fylr servers, two of them on a shared database, reaching two execservers through one round-robin balancer — the shape the section describes, with real production running through it, so the counters, the fleet graph and the in-flight/done lists all carry actual numbers rather than zeros.
Whether a file or a rendition carries an alpha channel was not answerable from the technical metadata: the channel count is a TIFF tag and the colour space names only the colour channels. The key is present only when the image has the channel, so an opaque image carries no key rather than a false one. Surgical addition to both OpenAPI assets and to the shared field table, marked with the version it ships in. see #80719
fylr restore --file-api-access-token is gone: the backup asks the source to sign its file urls for a horizon of its own (fylr backup --file-url-expire-days, 365 days), and packs the bytes of the files that are session gated rather than signed. Documents the new backup parameter and the restore's refusal of a backup whose urls expired, replaces the inspect form's Access Token field with File URL Validity, and refreshes the file_url_expire parameter in both specs. see #79762 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…m the interim svg see #80719 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ventory The page was a hand-kept list of every programmfabrik repo carrying a plugin manifest, last generated in June. It had drifted far enough to contradict the rest of the section: it still offered easydb-barcode-display-pdf-plugin and easydb-connector-plugin, pointed at repositories that have since been split, carried a rename hint that 6.35 reverses again, listed fylr-plugin-edit-info-updater twice, and had 41 in-page links whose anchors did not exist. Twenty-five of the catalog's entries were missing entirely. From 6.35 the list that matters is the marketplace, which fylr pulls from the published catalog when the shop is opened, so the page now mirrors that catalog — grouped by the same categories, with the licensed, private, custom-data-type and dependency facts each entry carries — and says so up front. Plugins that exist but are not offered in the shop keep a section of their own; they are linked to their repository rather than to a release URL, because the README is where the install URL is maintained. A private repository answers 404 to a reader without access, so those are named rather than linked. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… not one click Six corrections against what migrate_204_205.sql and the plugin manager actually do. server-pdf: the page said the upgrade does not touch it. It does — it switches it off wherever pdf-creator is enabled, because both plugins declare SERVER_PDF_GENERATE and SERVER_PDF_GENERATE_ERROR and an event name can belong to only one plugin. Off, not deleted, which matters because it has left the catalog and cannot be reinstalled from the shop; its html2pdf endpoint stops answering while it is off. The ZIP rescue: the browser can only fetch a plugin from a host that sends CORS headers, so the one-click path covers programmfabrik.github.io and nothing else. A GitHub release download cannot be fetched from a browser at all and falls back to a manual dialog. The state is called "not installed", not "not installable", and converting to zip drops the source URL and pins the update policy to never. The removal list said a plugin loaded from a path you added yourself is removed "like the rest", contradicting the page's own earlier promise and the code: the migration matches the docker install prefix, and the fylr.yml sync only deletes rows whose path is gone. Only three of the eight listed plugins were still shipped in 6.34; the rest can only arrive from an older fylr or an easydb5 migration, and are now in a table of their own. Also new: a converted plugin is held off until its release has been downloaded; a binary installation is not converted at all, because its plugins never sat under the docker prefix; the successor may already be installed, in which case the old row is dropped rather than renamed; and Scancode Display needs PDF Creator, which is worth knowing before the masks have been rewritten to its splitter. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The section named programmfabrik.github.io alone. An instance also has to reach docs.google.com, which is where the marketplace catalog is read from — without it the shop reports itself unavailable while installed plugins carry on — and github.com plus *.githubusercontent.com, because a releases/latest/download URL redirects and allowing github.com alone is not enough. The update policy table used labels the plugin manager does not show. The dropdown offers "automatic (daily)", "always (development)" and "never"; a zip plugin has no policy at all, its dropdown is disabled. The 6.34 note about the three CMS connectors now says the part that costs a customer an upgrade window: all three are licensed plugins, so the license has to grant them before they can be enabled. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…as renamed formula-columns claimed to ship with every release. It was never in the distribution's plugin.paths and it is not in the marketplace either — it is installed from its own release, so the page now says that and gives the URL. The connector page still called the plugin easydb-connector-plugin, including the base config section to open; it is fylr-plugin-connector from 6.35, and the migration moves the settings across with the rename. The wordpress page told the reader to pick a plugin of type "disk". Zooniverse has no fylr successor and is not in the marketplace: it is installed by URL, and an easydb5 instance still carrying it on disk loses it at the upgrade. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The introduction still opened with "fylr must be told to load a plugin in fylr.yml". From 6.35 that is the developer's path only — a finished plugin is installed in the plugin manager, and plugin.paths is for the directory you build into. Two facts the packaging pages were missing, both of which break a release quietly: the asset has to be named after the repository, because the marketplace catalog builds the install URL from the repository name and fylr-build-plugin takes no override; and the README next to manifest.yml is what the plugin manager and the shop now display, so it has to read without the repository around it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…gone The plugin manager and its per-plugin pages were a top-level section of their own, so an administrator looking for plugins found three separate entries in the navigation. They now sit under Plugins, next to the overview and the migration page; only the navigation moves, every page keeps its URL. plugins.md was in no navigation and nothing linked to it — a duplicate of plugins/README.md, which is now the section's index. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…atalog The page is no longer a repository inventory, so the next person to update it needs to know where its content comes from and which rows do not belong in it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…tall server-pdf The overview opened with "The list that counts is in your instance", which says nothing and sounds pleased with itself. It now states what the page is (a copy of the catalog, so it can be behind), what to use instead in a running instance, and that plugins outside the marketplace are listed further down. The page also never pointed at the developer documentation, which is the obvious next question for anyone reading a list of what exists. Three pages outside the plugin section still told the reader to install `server-pdf`, which PDF Creator has not needed since 1.1.0 and which 6.35 switches off: - the PDF Creator tutorial made installing it step 1 and said to enable both, which is exactly the duplicate-event configuration that breaks; - the Windows installation page called it the reason to install Chrome and claimed fylr does not package it, while the Windows fylr.yml installed it; - from-source named it in the apt comment for chromium. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…screen "Plugin Manager" is the right name for the page — it documents that screen, and renaming it would break the match with the UI the reader is looking at. What was wrong is that six per-plugin pages hung underneath it, which have nothing to do with the screen, while TYPO3 and PDF Creator sat in Tutorials, away from their own siblings Drupal and WordPress. The eight now sit together under a new "Individual plugins" index, which answers the question the old arrangement provoked — why only these? — on the page rather than leaving the reader to guess: every other plugin documents itself in its README, which the plugin manager and the marketplace display since 6.35. Nesting only; no page changed its URL. The overview's second half was whatever the old hand-kept page happened to list. It is now the rest of the fylr-plugin-* repositories that ship a plugin, which the page says, and which turned up five that were missing: core-mapping, custom-data-type-vis, slack-notification, example-licensed and fylr-plugin-zooniverse-import. That last one also corrects this page's own claim and the migration page's: Zooniverse does have a fylr successor. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…shape Ticket #79771 asks for a reference an author can build a plugin from. Three of its items were unanswered and three of the answers on these pages had been overtaken by fylr-build-plugin: - the manifest was described as a rendered `manifest.master.yml`. There is no master/generated split any more; `manifest.yml` ships verbatim, and the example plugin has no master file at all. - the release workflow was documented as triggering on a pushed tag, with a hand-written `zip` target. A release is cut by publishing it on the GitHub release page, and the Makefile is a shim over `go run fylr-build-plugin`. - "how must public repos be deployed to GitHub Pages" had no answer because the premise is wrong: public repositories attach the zip to the release, and Pages exists for private ones, whose release assets fylr cannot fetch. The l10n CSV structure was documented nowhere: it is a Google Sheets export committed as it comes, and fylr's loader reads only the `key` column and the `xx-XX` language columns — the `fil` and `R` columns are sheet bookkeeping. The localization page now points here for it. Both pages hand the build mechanics to the tool's README rather than copying them, which is what let this drift in the first place, and keep what fylr enforces on the finished plugin. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Putting the per-plugin pages under an "Individual plugins" node pushed the four Formula Columns examples to a fifth level, and that whole subtree stopped rendering — the Formula Columns page and its examples answered 404 in the preview while every sibling was fine. main never nests deeper than four levels, which is why nothing had shown this before. The examples now hang off Formula Columns directly. Their index page keeps its URL and stays linked from the Formula Columns text; it is only out of the sidebar. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Dropping it to flatten the tree left a page listed nowhere, and the Formula Columns page itself stopped rendering with it. It sits beside the examples now, which keeps the deepest branch at the four levels GitBook renders. Co-Authored-By: Claude Opus 5 <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.
Updates the execserver documentation for the fylr 6.35 slot broker. Held on the
v6.35branch — do not merge until 6.35.0 is released, since docs.fylr.io tracksmainand these pages still correctly describe the released 6.34 behaviour.Pages
for-developers/execserver.md— replaces the removedGET /token+PUT /jobpolling model with the broker protocol (new mermaid), pipe endpoints, and the auto-balance note.for-system-administrators/configuration/performance-tuning.md— auto-balance keys (cpus,fastReserve,heavyThreshold,unknownShare,drainTimeoutSec); explicitwaitgroupsis now the opt-out.concepts/white-papers/execserver-slot-broker.md— brought in line with what shipped: legacy transport removed in 6.35 (not a later release), no polling fallback (upgrade together), + auto-balance and graceful-drain sections.Config mirror pages (
fylr.default.yml.md/fylr.example.yml.md) still show the old keys — a follow-up.