Files
TREK/server/scripts/repository-owners.json
T
Maurice 1c6a175ebc fix(storage): queue what a delete left unnamed past every undo, and tell a copied database apart
A delete or a replace no longer deletes inside the request. The owner's call
queues the keys in storage_release_queue, due after RELEASE_DELAY_MS (26 h:
the assistant's 24 h approval window plus a margin), and StorageReleaseJob
takes the due rows every ten minutes, at most 200 a tick and 50 keys a
question, asks every reference source again and deletes what none names.
It refuses what the nightly pass refuses (StorageReclaimGuardService: the
ledger, the required sources, a shared location, another installation's
owner marker, cached per category), and waits while a restore or a backup
runs or another storage job holds the slot. An assistant undo or a late
write that names the old value again keeps its object.

The install id lives in data/.trek-install-id, outside any backup and never
written by a restore. At boot and after every reopen the database is
reconciled with it: a database naming another installation (a boot restore,
a restart after a failed restore, a copied travel.db) loses its switch,
confirmations, reports, marks and queue before anything reads them.

A confirmation now stores the count the admin was shown and when; it covers
up to one and a half times that count (at least 100 more) for 14 days, is
used up once the share is back under a fifth, and a count the last report
no longer holds is refused as reclaim_confirm_stale. The admin state folds
a live confirmation in, so the prompt goes at once.

A pass reads each source once for every category and drops each category's
keys once judged; right before a batch it reads the category's sources
again, whole and in memory, instead of a LIKE per key. A narrowed read holds
at most 50 LIKE terms. A pass held off by a backup reports backup_running,
and a category the ledger never reclaims reports not_reclaimed even after a
stop.
2026-11-01 18:11:43 +01:00

171 lines
5.5 KiB
JSON

{
"Addons": "addons",
"AiConnections": "ai-connections",
"AppSettings": "settings",
"AssignmentParticipants": "assignments",
"AssistantAttachments": "assistant",
"AssistantMessages": "assistant",
"AssistantThreads": "assistant",
"AssistantToolCalls": "assistant",
"AssistantUsage": "ai-connections",
"AuditLog": "audit",
"BucketList": "atlas",
"BudgetCategoryOrder": "budget",
"BudgetItemMembers": "budget",
"BudgetItemPayers": "budget",
"BudgetItems": "budget",
"BudgetSettlements": "budget",
"Categories": "categories",
"CollabLinks": "collab",
"CollabMessageReactions": "collab",
"CollabMessages": "collab",
"CollabNotes": "collab",
"CollabPollVotes": "collab",
"CollabPolls": "collab",
"CollectionLabels": "collections",
"CollectionMembers": "collections",
"CollectionPlaceRatings": "collections",
"CollectionPlaces": "collections",
"CollectionTours": "tours",
"Collections": "collections",
"DawarichConnections": "integrations",
"DawarichVisitSuggestions": "integrations",
"DayAccommodations": "accommodations",
"DayAssignments": "assignments",
"DayNotes": "day-notes",
"Days": "days",
"DocumentConnections": "doc-sync",
"DocumentProviderFields": "doc-sync",
"DocumentProviders": "doc-sync",
"DocumentSyncItems": "doc-sync",
"FerrataTiles": "ferratas",
"FileLinks": "files",
"GoogleApiUsage": "google-quota",
"GooglePlacePhotoMeta": "place-photos",
"HiddenCountries": "atlas",
"HiddenRegions": "atlas",
"IdempotencyKeys": "common",
"InviteTokens": "auth",
"JourneyBookRevisions": "journey",
"JourneyBooks": "journey",
"JourneyContributors": "journey",
"JourneyEntries": "journey",
"JourneyEntryPhotos": "journey",
"JourneyEntryStays": "journey",
"JourneyPhotos": "journey",
"JourneyRecordedDays": "journey",
"JourneyRecordingPrep": "journey",
"JourneyShareTokens": "journey",
"JourneyTrips": "journey",
"Journeys": "journey",
"McpTokens": "tokens",
"NotificationChannelPreferences": "notifications",
"Notifications": "notifications",
"OauthClients": "oauth",
"OauthConsents": "oauth",
"OauthTokens": "oauth",
"PackingBags": "packing",
"PackingCategoryAssignees": "packing",
"PackingItemContributors": "packing",
"PackingItems": "packing",
"PackingTemplateCategories": "packing",
"PackingTemplateItems": "packing",
"PackingTemplates": "packing",
"PaddleFeatures": "paddle-obstacles",
"PaddleRegionRequests": "paddle-obstacles",
"PaddleRegions": "paddle-obstacles",
"PaddleWaterGraphs": "paddle-routing",
"PasswordResetTokens": "auth",
"PhotoProviderFields": "addons",
"PhotoProviders": "addons",
"Photos": "photos",
"PlaceContribLog": "place-contrib",
"PlaceContribOutbox": "place-contrib",
"PlaceDetailsCache": "maps",
"PlaceFieldOrigin": "places",
"PlaceRatings": "places",
"PlaceRegions": "atlas",
"PlaceShadowPicks": "place-shadow",
"Places": "places",
"PluginActions": "plugins",
"PluginCapabilityAudit": "plugins",
"PluginEgressHosts": "plugins",
"PluginEntityMetadata": "plugins",
"PluginErrorLog": "plugins",
"PluginMetaMigrations": "plugins",
"PluginOauthState": "plugins",
"PluginOauthTokens": "plugins",
"PluginScheduledTasks": "plugins",
"PluginSettingsFields": "plugins",
"PluginUserConfig": "plugins",
"PluginUserErasureQueue": "plugins",
"Plugins": "plugins",
"PushSubscriptions": "notifications",
"ReservationDayPositions": "reservations",
"ReservationEndpoints": "reservations",
"ReservationEndpointsEntity": "reservations",
"ReservationTravelers": "reservations",
"ReservationTravelersEntity": "reservations",
"Reservations": "reservations",
"RoadtripDayBoundaries": "roadtrip",
"RoadtripDayTracks": "roadtrip",
"RoadtripPreferences": "roadtrip",
"RoadtripPreferencesEntity": "roadtrip",
"RoadtripVias": "roadtrip",
"RouteUsageDaily": "route-usage",
"SchedulerLeases": "scheduling",
"SchoolHolidayCountries": "school-holidays",
"SchoolHolidayPeriods": "school-holidays",
"SchoolHolidayRegions": "school-holidays",
"Settings": "settings",
"ShareTokens": "share",
"StorageReclaimMarks": "storage",
"StorageReleaseQueue": "storage",
"Tags": "tags",
"TodoCategoryAssignees": "todo",
"TodoItems": "todo",
"TourActivities": "tours",
"TourActivityExclusions": "tours",
"TourChangeSteps": "tours",
"TourDrafts": "tours",
"TourObstacleReviews": "tours",
"TourStationVisits": "tours",
"TourPackingLinks": "tours",
"TourSourceHints": "tours",
"TourSources": "tours",
"TourTypes": "tours",
"TourWaypoints": "tours",
"Tours": "tours",
"TrekPhotoCacheMeta": "memories",
"TrekPhotoSignals": "photos",
"TrekPhotos": "photos",
"TripAlbumLinks": "memories",
"TripDocumentLinks": "doc-sync",
"TripFiles": "files",
"TripInviteTokens": "trip-invite",
"TripJournalLinkMembers": "journey",
"TripJournalLinks": "journey",
"TripMemberRemovals": "trip-membership",
"TripMembers": "trip-membership",
"TripPhotos": "photos",
"Trips": "trips",
"UserNoticeDismissals": "system-notices",
"UserSessions": "sessions",
"Users": "auth",
"VacayCompanyHolidays": "vacay",
"VacayEntries": "vacay",
"VacayHolidayCalendars": "vacay",
"VacayPlanMembers": "vacay",
"VacayPlans": "vacay",
"VacayShares": "vacay",
"VacayUserColors": "vacay",
"VacayUserSettingsEntity": "vacay",
"VacayUserYears": "vacay",
"VacayYears": "vacay",
"VisitedCountries": "atlas",
"VisitedRegions": "atlas",
"WandererConnections": "wanderer",
"WebauthnChallenges": "auth",
"WebauthnCredentials": "auth"
}