You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Write content/components.csv and content/deployments.csv into a Google Sheet through the Sheets API — one tab each, clearing and rewriting the range on every refresh — with a frozen header row that says the sheet is generated and names where to edit instead.
Why this is not a step backwards
#19 and #20 retire the Google Sheet as an input: the component files become the source of truth and --google-sheet goes away. This keeps a sheet as an output, which is a different thing. The audience that lives in Sheets gets filter views, comments, pivot tables and the ability to hand a colleague a link, without the project having a second source of truth.
It is the same relationship the published page has to the component files: a generated view nobody edits.
The trap
The moment somebody types in it, it is a second source of truth again — and worse than the old one, because the next refresh silently overwrites what they typed. The defence is mechanical, not a note in the header row: protected ranges on the generated tabs, and sharing set to commenter rather than editor. If the sheet is shared as editable "just for now", this issue has recreated the problem #19 and #20 exist to remove.
Related and not the same problem: #6 wants to reconcile against component lists from ITRB. That is inbound, and it must not be solved by letting people type into this sheet. If people need to propose changes, they comment, and the comment becomes an edit to a component file.
Constraints
Same service-account problem as #37: a service account has no storage quota and cannot own files in My Drive, so the sheet has to live in a Shared Drive or be owned by an impersonated user. Same long-lived JSON key as a secret. Private side of the border — deployments.csv carries every field of every cell, unredacted.
Open questions
Does anybody actually want it?Mirror content/ into a project Shared Drive #37 already puts a CSV in Drive, and Drive opens a CSV in Sheets on demand. The gap this fills is a stable, linkable, always-current sheet with saved filter views, which is either the whole point or not worth a second integration. Ask before building.
If it is wanted, does it replace Mirror content/ into a project Shared Drive #37 or sit beside it? Two mechanisms writing to Drive with one key is not obviously worse than one, but it is two things to rotate and two to explain.
Whether the tab layout should match the old sheet's columns exactly — which makes it a drop-in for anyone with existing links and formulas — or be shaped for reading now that it does not have to be typed into.
Write
content/components.csvandcontent/deployments.csvinto a Google Sheet through the Sheets API — one tab each, clearing and rewriting the range on every refresh — with a frozen header row that says the sheet is generated and names where to edit instead.Why this is not a step backwards
#19 and #20 retire the Google Sheet as an input: the component files become the source of truth and
--google-sheetgoes away. This keeps a sheet as an output, which is a different thing. The audience that lives in Sheets gets filter views, comments, pivot tables and the ability to hand a colleague a link, without the project having a second source of truth.It is the same relationship the published page has to the component files: a generated view nobody edits.
The trap
The moment somebody types in it, it is a second source of truth again — and worse than the old one, because the next refresh silently overwrites what they typed. The defence is mechanical, not a note in the header row: protected ranges on the generated tabs, and sharing set to commenter rather than editor. If the sheet is shared as editable "just for now", this issue has recreated the problem #19 and #20 exist to remove.
Related and not the same problem: #6 wants to reconcile against component lists from ITRB. That is inbound, and it must not be solved by letting people type into this sheet. If people need to propose changes, they comment, and the comment becomes an edit to a component file.
Constraints
Same service-account problem as #37: a service account has no storage quota and cannot own files in My Drive, so the sheet has to live in a Shared Drive or be owned by an impersonated user. Same long-lived JSON key as a secret. Private side of the border —
deployments.csvcarries every field of every cell, unredacted.Open questions