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 |
|