Commit Graph

69 Commits

Author SHA1 Message Date
Sasha Weiss
a82216e06c
Add warning sheets for undownloaded media with an expiring IAP subscription 2026-06-02 09:51:04 -07:00
Sasha Weiss
8a0e1a9a2c
Use Cron/scheduleFrequently for subscription redemption 2026-05-13 16:14:19 -07:00
Sasha Weiss
bcb928a9c6
Downgrade BackupPlan paid -> free if no local IAP anything 2026-05-12 15:49:56 -07:00
sashaweiss-signal
5fd29f68f4 Add localBackupPlan to BackupSubscriptionManager startup logging 2026-02-25 09:50:22 -08:00
Sasha Weiss
951a481d45
Enforce that Backup Subscriptions are only redeemed in the main app 2026-02-17 14:53:06 -06:00
Sasha Weiss
d267ec8305
Run swiftformat . 2025-12-30 11:34:05 -08:00
Sasha Weiss
267aa3ca9c
Use failIfThrows in BackupAttachmentDownloadStore 2025-12-19 13:26:29 -08:00
Sasha Weiss
2a7bf26d54
Stop using typed throws in AppAttestManager 2025-12-02 10:35:37 -08:00
Max Radermacher
0977510e1f
Throw OWSHTTPError for unexpected status codes 2025-11-25 09:32:58 -06:00
Sasha Weiss
344f56d93c
Back off for 429s from TestFlight subscription redemption 2025-11-20 13:08:03 -08:00
Sasha Weiss
1490787671
Rotate uploadEra when BackupPlan becomes "paid" 2025-11-19 17:42:55 -08:00
sashaweiss-signal
8a50cfb24b Add downgrading-BackupPlan logs 2025-11-12 14:23:18 -08:00
sashaweiss-signal
8c2601d90f Improve logging in AppAttestManager 2025-11-11 16:20:34 -08:00
Sasha Weiss
23e79b8cdd
Add warning UX if local IAPSubscriberData doesn't match local IAP account 2025-11-11 12:40:00 -08:00
Sasha Weiss
6dc5ae0463
Add UX for "Backup subscription redeemed too many times" 2025-11-11 12:36:10 -08:00
Max Radermacher
b364a38641
Allow interrupts when waiting for storage service 2025-11-11 11:40:26 -06:00
Sasha Weiss
b3e5a0991a
Handle the CANCELED subscription status for IAP 2025-11-03 09:33:33 -08:00
Sasha Weiss
f38a373f57
Add ReceiptCredentialManager to handle shared ReceiptCredential logic 2025-10-31 12:37:56 -07:00
Sasha Weiss
d4867a55e1
Add UX for Backups subscription renewal failures 2025-10-29 11:52:06 -07:00
Max Radermacher
560cefae94
Rename FeatureFlags → BuildFlags 2025-10-27 13:27:11 -05:00
Sasha Weiss
e1ca622e08
Downgrade BackupPlan -> .free when the remote subscription expires 2025-10-27 09:18:35 -07:00
Sasha Weiss
4a45dc95b8
Add SubscriptionConfigMgr, use to populate Backups-related remote values 2025-10-23 16:09:03 -07:00
Sasha Weiss
212d19e97d
Show FYISheet if downgrading BackupPlan when offboarding from TestFlight 2025-10-15 12:29:53 -07:00
Sasha Weiss
f42473dc0a
Show an FYISheet when Backups entitlement expires 2025-10-14 09:10:25 -07:00
Sasha Weiss
4e37d9b752
Downgrade BackupPlan when entitlement expires, not subscription 2025-10-06 08:58:00 -07:00
Sasha Weiss
9a35281f52
Make BkpSubMgr/redeemSubscriptionIfNecessary await interrupted-and-resumed redemptions 2025-09-10 12:55:22 -07:00
Sasha Weiss
26100521d3
Set BackupPlan for real on linked devices 2025-09-05 13:01:37 -07:00
Sasha Weiss
c4e1ffa37d
Serialize AppAttest redemption attempts 2025-09-04 12:45:27 -07:00
Sasha Weiss
faef085dc4
Skip attempting AppAttest in dev builds 2025-08-22 14:31:25 -07:00
Sasha Weiss
1db4d1544f
Acquire a Backups entitlement before fetching Backup auth credentials 2025-08-21 20:46:25 -07:00
Sasha Weiss
c4f79ad4bc
Recover if AppAttest suddenly rejects a previously-attested key 2025-08-18 11:27:52 -07:00
Sasha Weiss
acb807acad
Adjust /devicecheck TSRequests 2025-08-08 13:31:39 -07:00
Sasha Weiss
6097c287a3
Skip AppAttest check, for now, if opted into Backups via remote config 2025-07-22 21:17:26 -07:00
Max Radermacher
2585a4101c
Use asyncRequest where trivially possible 2025-07-22 16:28:00 -05:00
sashaweiss-signal
d03f3e3c7d Assume AppAttest generated key string are base64-encoded data 2025-07-18 15:47:06 -07:00
sashaweiss-signal
31324bf1ca Add additional logging to AppAttest key-registration request 2025-07-17 16:24:59 -07:00
sashaweiss-signal
4a69f7eaaa Base64Url-encode keyId param in AppAttest requests 2025-07-17 11:18:25 -07:00
sashaweiss-signal
fc50120d82 Add application/octet-stream header to AppAttest requests with .data bodies 2025-07-16 20:54:02 -07:00
sashaweiss-signal
ae54e70cae Use PUT, not POST, for registering a key in AppAttest 2025-07-16 15:49:29 -07:00
sashaweiss-signal
19e8b24240 Remove leading / from AppAttest request URLs 2025-07-16 14:16:06 -07:00
sashaweiss-signal
8b3d479928 Rotate persisted AppAttest keyId 2025-07-16 14:06:34 -07:00
sashaweiss-signal
2854867f60 Add logging to AppAttestManager 2025-07-16 14:05:22 -07:00
sashaweiss-signal
f2ede4d126 Fix URL path for fetching AppAttest assertion challenge 2025-07-16 12:33:49 -07:00
Sasha Weiss
05b5aa0f90
Add AppAttestManager to use AppAttest to acquire the Backup entitlement for TestFlight builds 2025-07-16 08:37:44 -07:00
Sasha Weiss
4f4c79f532
Add BackupTestFlightEntitlementManager 2025-07-16 08:36:15 -07:00
Sasha Weiss
b7df52ec77
Download offloaded attachments before disabling Backups 2025-07-14 10:32:33 -07:00
Sasha Weiss
ece398b6c1
UX support for Backup subscriptions expired in the past 2025-07-01 10:44:43 -07:00
Sasha Weiss
0103dae13b
Add and use BackupPlanManager to consolidate side-effects of setting BackupPlan 2025-06-30 22:25:05 -07:00
Harry
fe4b14e8ea
Use ConcurrentTaskQueue(concurrentLimit: 1) in place of SerialTaskQueue where possible 2025-06-26 15:23:13 -07:00
Sasha Weiss
be281ae37d
Start the upload queue when setting paid BackupPlan, add UploadEraStore 2025-06-25 16:19:29 -07:00