fix: signed PDFs move to a GCS archive (consumer SAs have zero Drive quota) - #2
Conversation
… storage quota The live e2e failed at the final Drive upload with storageQuotaExceeded: Google grants consumer-account service accounts no Drive storage at all, so the SA can never own an uploaded PDF (or even create a folder) — the design's SA-quota caveat understated reality, and Shared Drives / delegation both require Workspace. Signed PDFs now land in the public-read bucket skipta-amendments-teralivekubernetes under a per-customer prefix, keeping the zero-stored-credentials model intact (skipta-gsa holds storage.objectUser via Workload Identity). The deterministic per-amendment blob name remains the retry-idempotency key (find-or-upload), mark_signed still runs only after a URL exists, and the pdf_drive_url sheet column now carries the public object URL. Drive integration (app/drive.py) is removed — the SA can still read the shared SoW folder, but nothing in the MVP consumes it, and the Skipta/ Drive folder stays as the human-side SoW archive. Design doc updated to the as-built shape, including the public-bucket demo caveat and the promote-to-real path (private bucket + signed URLs). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 6 seconds Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (13)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Summary
storageQuotaExceededat the final Drive upload: Google grants consumer-account service accounts zero Drive storage, so an SA can never own an uploaded file or created folder, and the Workspace escape hatches (Shared Drives, delegation) don't exist here. Signed PDFs now live in the public-read GCS bucketskipta-amendments-teralivekubernetesunder per-customer prefixes — keeping the zero-stored-credentials model (bucket-scopedstorage.objectUservia Workload Identity).mark_signed, honest 502s. Thepdf_drive_urlsheet column now carries the public object URL.app/drive.pyremoved (nothing consumes Drive anymore — theSkipta/folder remains the human-side SoW archive);app/gcs.pyreplaces it with matching test fakes.gcs_bucket/SKIPTA_GCS_BUCKET; design doc updated to as-built, including the public-bucket demo caveat and the promote-to-real path (private bucket + signed URLs).Test plan
cigreen (29 tests + the CI-only WeasyPrint render; suite covers upload/marks-signed, retry-reuses-existing-blob with no re-upload, and blob naming).amend_smith_20260702051053— expect the PDF at the bucket URL and the sheet row flippingsigned(the draft row survived the 502 exactly as designed).Related