{"entries":[{"id":"agentConversations","name":"App Agent Conversations","purpose":"The full message history of conversations between people and the app's agents.","owner":"app","holds":["userContent"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"analyticsAggregates","name":"App Analytics Aggregated Rollups","purpose":"Traffic totals for the app in five-minute buckets, including the visitor IDs counted in each. These are kept after the raw events are pruned.","owner":"app","holds":["personalInfo","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"app","name":"App Metadata","purpose":"The app's main record (name and settings), the custom domains it's served on, and its branch preview links.","owner":"app","holds":["credentials","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"appFiles","name":"App Files","purpose":"Files the app stores (its own file stores, end-user uploads and step outputs, wireframes), the thumbnails and previews the edge generates from them, and each file's malware and PII scan result.","owner":"app","holds":["userContent","appContent","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"appUsers","name":"App Users","purpose":"Accounts for people who sign in to the app (email, phone number and roles), with their API keys and OAuth grants.","owner":"app","holds":["personalInfo","credentials"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"billingLedger","name":"App Billing Events","purpose":"One billing event per charged call, with its cost and the workspace and person it was billed to.","owner":"app","holds":["metadata"],"retention":null,"kept":"It's part of the workspace's billing history.","anonymized":null,"backupDays":28},{"id":"browserSessions","name":"App Browser Sessions","purpose":"The browser sessions the app's code has opened: when, in which world, how each ended and the sites its pages were on, and the reference its user agent carried, which a site's report is traced back by.","owner":"app","holds":["metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"databases","name":"App Databases","purpose":"The app's database files (one set per release) and the list of its databases and their tables.","owner":"app","holds":["userContent","personalInfo"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"dataMoves","name":"App Data Migrations","purpose":"Records of the app's moves to another workspace or storage region, the files each move copied, and any queued work stored while a move is in progress.","owner":"app","holds":["userContent","personalInfo","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"dataSources","name":"App Data Sources","purpose":"Documents uploaded or synced into the app's data sources and everything derived from them (extracted text, chunks, embeddings, dictionaries), along with ingest jobs, connectors and evaluation sets.","owner":"app","holds":["userContent","credentials","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"dedicatedCapacity","name":"App Dedicated Capacity","purpose":"The app's provisioned  vector search capacity, along with its configuration, state history and logs.","owner":"app","holds":["metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"devBoxes","name":"App Cloud IDE Sessions","purpose":"A record of each cloud IDE session the app was built in: whose it was, when it ran, and the box it ran on.","owner":"app","holds":["credentials","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"devBoxSnapshots","name":"App Cloud IDE Snapshots","purpose":"Snapshots of each person's cloud IDE home directory, which restore their work between sessions, and the Remy agent's usage log. They're deleted once the person hasn't used the cloud IDE in the app for 30 days, or leaves the workspace.","owner":"app","holds":["userContent","credentials","appContent"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"email","name":"App Email Domains & Sending","purpose":"The app's sending and receiving domains, its suppression list, and its sending status with the email provider.","owner":"app","holds":["personalInfo","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"emailBodies","name":"App Queued Email Bodies","purpose":"Message bodies for emails waiting to send, deleted once the send finishes.","owner":"app","holds":["userContent","personalInfo"],"retention":"expires","kept":null,"anonymized":null,"backupDays":28},{"id":"emailLog","name":"App Email Log","purpose":"Each email the app sent, with its subject and sender, and one row per recipient with its delivery status.","owner":"app","holds":["userContent","personalInfo"],"retention":{"days":90},"kept":null,"anonymized":null,"backupDays":28},{"id":"feedbackBundles","name":"App Feedback Bundles","purpose":"Diagnostic bundles sent with Send Feedback, containing the dev box's logs and the agent's session.","owner":"app","holds":["userContent","appContent","diagnostics"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"frontendErrors","name":"App Frontend Errors","purpose":"JavaScript errors from the app's pages in visitors' browsers, with messages, stack traces and breadcrumbs, and counts in five-minute buckets.","owner":"app","holds":["personalInfo","diagnostics"],"retention":{"days":90},"kept":null,"anonymized":null,"backupDays":28},{"id":"issuesAndReports","name":"App Issues & Reports","purpose":"Issues opened for the app and their comments, as well as generated security reports and CAIQ security attestations.","owner":"app","holds":["userContent","appContent"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"jewels","name":"App Jewels","purpose":"Records from the app's Jewels: each proposal and its results, pairs of what the jewel proposed and what the person did, and a trace of each run.","owner":"app","holds":["userContent"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"methodMetrics","name":"App Method Metrics","purpose":"Call counts, error counts and durations for each of the app's methods, in five-minute buckets.","owner":"app","holds":["userContent","diagnostics","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"modelTraining","name":"App Model Training","purpose":"Training runs for models tuned on the app's data, the training datasets, and the resulting model adapters.","owner":"app","holds":["userContent"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"phoneNumbers","name":"App Phone Numbers","purpose":"Phone numbers the app leases for its voice agents.","owner":"app","holds":["metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"qaRecordings","name":"App QA Recordings","purpose":"Session replays of the app's pages, recorded in cloud IDE sessions during QA.","owner":"app","holds":["userContent","appContent"],"retention":{"days":30},"kept":null,"anonymized":null,"backupDays":28},{"id":"requestLog","name":"App Request Log","purpose":"A record of every call to the app's methods, including the full input, output and console output.","owner":"app","holds":["userContent","personalInfo"],"retention":{"days":90},"kept":null,"anonymized":null,"backupDays":28},{"id":"scheduledJobRuns","name":"App Scheduled Job Runs","purpose":"One record per scheduled job run: when it started and finished, and whether it succeeded.","owner":"app","holds":["metadata"],"retention":{"days":90},"kept":null,"anonymized":null,"backupDays":28},{"id":"scheduledJobs","name":"App Scheduled Jobs","purpose":"The scheduled jobs declared in the app's manifest, with each job's schedule and status.","owner":"app","holds":["metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"scratchFiles","name":"App Scratch Files","purpose":"Temporary files passed between steps and jobs, and step results too large to return directly, deleted after two days.","owner":"app","holds":["userContent"],"retention":"expires","kept":null,"anonymized":null,"backupDays":28},{"id":"secrets","name":"App Secrets","purpose":"Encrypted secret values for the app's code, with separate dev and live values.","owner":"app","holds":["credentials"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"sharedLinks","name":"Exported App Assets","purpose":"Public share links for the app's shareable items, such as its reports, attestations and pitch decks, each with its link preview and the URL of the snapshot it points to.","owner":"app","holds":["metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"source","name":"App Source Code & Release History","purpose":"The app's source code and git history, and each release's build output, dependencies, static site, performance diagnostics and prerendered pages.","owner":"app","holds":["appContent","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"taskTraces","name":"App Agent Traces","purpose":"A turn-by-turn record of each task agent run, including every model call and its token usage.","owner":"app","holds":["userContent"],"retention":{"days":90},"kept":null,"anonymized":null,"backupDays":28},{"id":"usageRollups","name":"App Usage & Activity Rollups","purpose":"Usage totals for the app and its sandbox activity, in five-minute buckets.","owner":"app","holds":["metadata"],"retention":null,"kept":"They're part of the workspace's usage history.","anonymized":null,"backupDays":28},{"id":"visitorAnalytics","name":"App Visitor Analytics","purpose":"Page views and events from the app's visitors, with referrer, device and city-level location, and visits from crawlers.","owner":"app","holds":["personalInfo","metadata"],"retention":{"days":90},"kept":null,"anonymized":null,"backupDays":28},{"id":"voiceCalls","name":"App Voice Calls","purpose":"Calls with the app's voice agents, with the caller, full transcript and usage for each, and the voice agent's settings.","owner":"app","holds":["userContent","personalInfo"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"auditLog","name":"Workspace Audit Log","purpose":"The workspace's immutable audit trail: who did what, to which resource, from where, and with what outcome.","owner":"workspace","holds":["personalInfo","metadata"],"retention":null,"kept":"Each event is locked for a year, and nobody can delete it before then.","anonymized":null,"backupDays":null},{"id":"billingRecords","name":"Workspace Billing Records","purpose":"Credit grants to the workspace and its monthly recurring revenue figures, kept for finance reporting.","owner":"workspace","holds":["personalInfo","metadata"],"retention":null,"kept":"They're part of the workspace's billing history.","anonymized":null,"backupDays":28},{"id":"connectedAccounts","name":"Workspace Connected Accounts","purpose":"Third-party accounts the workspace has connected through OAuth, with their tokens, and any OAuth client credentials it brought.","owner":"workspace","holds":["personalInfo","credentials"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"customModels","name":"Workspace Custom Models","purpose":"Models the workspace added itself, including custom endpoints and models tuned for its apps.","owner":"workspace","holds":["metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"dataExports","name":"Workspace Data Exports","purpose":"Exports of everything the workspace, or one of its apps, stores, built when an admin asks for one and kept for 7 days to download.","owner":"workspace","holds":["userContent","personalInfo","appContent","diagnostics","metadata"],"retention":"expires","kept":null,"anonymized":null,"backupDays":28},{"id":"plan","name":"Workspace Plan","purpose":"The workspace's plan agreements, granted features, trials and redeemed promotion codes.","owner":"workspace","holds":["metadata"],"retention":null,"kept":"They're part of the workspace's billing history.","anonymized":null,"backupDays":28},{"id":"businessAssociateAgreement","name":"Workspace Business Associate Agreement","purpose":"The workspace's business associate agreements with us: which form, when it took effect, and who signed for the workspace.","owner":"workspace","holds":["personalInfo","metadata"],"retention":null,"kept":"HIPAA has us keep a business associate agreement for six years after it was last in effect.","anonymized":null,"backupDays":28},{"id":"registeredDomains","name":"Workspace Registered Domains","purpose":"Domains the workspace registered through us, their DNS records, and the registrant's contact details (name, address, email, phone).","owner":"workspace","holds":["personalInfo","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"singleSignOn","name":"Workspace Single Sign-On","purpose":"SSO setup for the workspace: its identity provider organization, connections and verified email domains.","owner":"workspace","holds":["metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"workspace","name":"Workspace Metadata & Members","purpose":"The workspace record (name and settings), its members and pending invitations, its app folders, and its storage region moves.","owner":"workspace","holds":["personalInfo","credentials","metadata"],"retention":null,"kept":null,"anonymized":"Its members, invitations, app folders and region moves are deleted, and its name, logo and settings are cleared. A nameless record with its id and dates stays, so the history that mentions it (billing, the audit trail) still makes sense.","backupDays":28},{"id":"workspaceKeys","name":"Workspace API & Vendor Keys","purpose":"The workspace's API keys, and the vendor keys and service settings it has configured, stored encrypted.","owner":"workspace","holds":["credentials","metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"workspaceUploads","name":"Workspace Uploads","purpose":"Files uploaded at the workspace level, by the workspace or any of its people, including the snapshots behind exported app assets. They stay with the workspace when someone leaves.","owner":"workspace","holds":["userContent"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"account","name":"Account Metadata","purpose":"A person's account record: email, name, profile and settings.","owner":"person","holds":["personalInfo","credentials","metadata"],"retention":null,"kept":null,"anonymized":"Its name, email, profile and settings are cleared. A nameless record with its id and dates stays, so the history that mentions it (billing, the audit trail) still makes sense.","backupDays":28},{"id":"accountAttribution","name":"Account Attribution & Favorites","purpose":"How a person first arrived (the campaign, referrer and landing page) and the models they marked as favorites.","owner":"person","holds":["metadata"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"profilePicture","name":"Account Profile Picture","purpose":"The picture on a person's account, whether they uploaded it or it came from their sign-in provider.","owner":"person","holds":["personalInfo"],"retention":null,"kept":null,"anonymized":null,"backupDays":28},{"id":"signIn","name":"Account Sign-In","purpose":"How a person signs in: linked identities, hashes, and sessions.","owner":"person","holds":["personalInfo","credentials"],"retention":null,"kept":null,"anonymized":null,"backupDays":28}]}