Record sharing 6/14: call recordings go private - #25438
Conversation
|
CI note on the Generated by Claude Code |
a757b10 to
acdf16b
Compare
acdf16b to
7f3d5c1
Compare
Declare callRecording PRIVATE in the standard application, have the fathom, fireflies and call-recorder apps state who may read each recording through shareWith when they create it, and add two 2.39 workspace commands: one flips the readability of the existing callRecording object, the other backfills one EVERYONE FULL share row per existing recording so enabling IS_RECORD_SHARING_ENABLED loses nothing a workspace member could already do.
9536dc3 to
f4ac9f9
Compare
A where object built in the jest realm is not a plain object for the application realm, so the previous cleanup deleted every share row of the workspace.
Sixth PR of the record-sharing stack, stacked on #25429 (in-memory twin). This is the first user-visible change of the plan and the end of the smallest slice that ships call recording privacy. Still inert until
IS_RECORD_SHARING_ENABLEDis turned on for a workspace.What changes
callRecordingwith readabilityPRIVATE. New workspaces get it from the sync; existing workspaces get it from the newupgrade:2-39:make-call-recording-privateworkspace command, since the standard application is only synced at workspace creation.upgrade:2-39:backfill-call-recording-sharesinserts oneEVERYONE/FULLshare row per existing call recording (deleted ones included,rowCauseAPPLICATION,sourceId= the callRecording object id), in chunks of 500, idempotent through the unique index. It runs after the recordShare sync command from Record sharing 2/14: add the recordShare hidden standard object and its service #25425 and after the readability flip, and skips workspaces where either object is missing.shareWith(Record sharing 4/14: let a create state who may read the record with shareWith #25428):FULLfor a personal connection (visibility: 'user'), everyone atREADotherwise (resolveCallRecordingShareWith);READ(workspace API key, no per-user identity).Updates are unchanged. Apps bump their patch version and require
twenty >= 2.39.0; fathom also moves its SDK pins from 2.35.0 to 2.37.0 so its integration test can passshareWith.Rollout
IS_RECORD_SHARING_ENABLEDper workspace. Before the flag, every level behaves likeOPEN, and the share rows are written but not consulted.Things to know
latestserver image will rejectshareWithas an unknown argument until a server carrying Record sharing 4/14: let a create state who may read the record with shareWith #25428 is published. The leg that runs against this branch's server passes.shareWithargument is typed loosely in the committed app code (__args: { data, shareWith }), in the shape the SDK generates forcreateOne.Tests
PRIVATE, recordShare isSYSTEM, every other standard object staysOPEN.FULL, workspace connection or missing member gives everyoneREAD); app integration tests updated to sendshareWith.EVERYONEFULLrow per recording and no duplicates.Stack
Generated by Claude Code