Files
zpan/migrations/meta/_journal.json
T
agent-kanban-local[bot]andAlex Chen 00f48cf355 feat(avatars): host avatars + team logos on Cloud via SDK 2.4.0; remove public-bucket mode (#467)
* feat(avatars): host avatars + team logos on Cloud via SDK 2.4.0; remove public-bucket mode

Host user avatars and org logos on the ZPan Cloud avatar service
(zpan-cloud-sdk ^2.4.0) instead of a public S3/R2 bucket, then remove the
now-dead storages.mode / public-bucket concept entirely (#456 parts 2-3).

- image-upload gateway: upload/delete via SDK uploadAvatar/deleteAvatar against
  a bound Cloud client; validate mime (AVATAR_CONTENT_TYPES) + size
  (MAX_AVATAR_BYTES) before the call; map cloud error codes to 400/403/413/500;
  unbound instance returns 503 cloud_required (delete is a best-effort no-op).
- licensing-cloud: createAvatarUploadClient builds the client with a plain-object
  bearer header so both the image content-type and Authorization survive hono's
  per-request header merge (a Headers instance would be dropped).
- drop storages.mode (migration via drizzle-kit), StorageRepo.select() no longer
  takes a mode, remove StorageMode / Storage.mode / mode schema+audit+UI+i18n and
  the PUBLIC_IMAGES bucket + PUBLIC_IMAGES_URL wiring.

Agent-Profile: https://agent-kanban.dev/agents/f759c704c282d88a

* ci(deploy): drop dead PUBLIC_IMAGES R2 provisioning from CF deploy

The Cloud avatar migration removed the PUBLIC_IMAGES binding from
wrangler.toml, so the deploy workflow's R2 public-images steps are dead and
must go too — otherwise every CF deploy keeps re-provisioning a public-read
zpan-public-images bucket (the footgun #456 eliminates) and sets an unused
PUBLIC_IMAGES_URL secret. Removes the bucket-create, managed-public-URL, and
secret steps (steps.r2 was only consumed by the secret step). Also drops a
stale storage-modes line from the v2.0 roadmap.

Agent-Profile: https://agent-kanban.dev/agents/f759c704c282d88a

---------

Co-authored-by: Alex Chen <alex-chen@mails.agent-kanban.dev>
2026-06-20 00:16:07 -04:00

342 lines
7.1 KiB
JSON

{
"version": "7",
"dialect": "sqlite",
"entries": [
{
"idx": 0,
"version": "6",
"when": 1775051640321,
"tag": "0000_perfect_cyclops",
"breakpoints": true
},
{
"idx": 1,
"version": "6",
"when": 1775073310565,
"tag": "0001_org_and_admin_plugins",
"breakpoints": true
},
{
"idx": 2,
"version": "6",
"when": 1775080000000,
"tag": "0002_storage_pool_fields",
"breakpoints": true
},
{
"idx": 3,
"version": "6",
"when": 1775090000000,
"tag": "0003_recycle_bin",
"breakpoints": true
},
{
"idx": 4,
"version": "6",
"when": 1775100000000,
"tag": "0004_username_plugin",
"breakpoints": true
},
{
"idx": 5,
"version": "6",
"when": 1775110000000,
"tag": "0005_invite_codes",
"breakpoints": true
},
{
"idx": 6,
"version": "6",
"when": 1776000000000,
"tag": "0007_activity_feed",
"breakpoints": true
},
{
"idx": 7,
"version": "6",
"when": 1776100000000,
"tag": "0008_team_invite_links",
"breakpoints": true
},
{
"idx": 8,
"version": "6",
"when": 1776200000000,
"tag": "0009_matters_active_name_uniq",
"breakpoints": true
},
{
"idx": 9,
"version": "6",
"when": 1776300000000,
"tag": "0010_shares",
"breakpoints": true
},
{
"idx": 10,
"version": "6",
"when": 1776400000000,
"tag": "0011_notifications",
"breakpoints": true
},
{
"idx": 12,
"version": "6",
"when": 1776749333797,
"tag": "0012_image-hosting",
"breakpoints": true
},
{
"idx": 13,
"version": "6",
"when": 1776997633827,
"tag": "0013_licensing",
"breakpoints": true
},
{
"idx": 14,
"version": "6",
"when": 1777085815109,
"tag": "0014_drop-license-binding",
"breakpoints": true
},
{
"idx": 15,
"version": "6",
"when": 1777333623540,
"tag": "0015_add-site-invitations",
"breakpoints": true
},
{
"idx": 16,
"version": "6",
"when": 1777431441985,
"tag": "0016_crazy_wiccan",
"breakpoints": true
},
{
"idx": 17,
"version": "6",
"when": 1777771763793,
"tag": "0017_add-announcements",
"breakpoints": true
},
{
"idx": 18,
"version": "6",
"when": 1777994764279,
"tag": "0018_reflective_zodiak",
"breakpoints": true
},
{
"idx": 19,
"version": "6",
"when": 1778027676779,
"tag": "0019_quota-store-binding-settings",
"breakpoints": true
},
{
"idx": 20,
"version": "6",
"when": 1778031362440,
"tag": "0020_license-store-key",
"breakpoints": true
},
{
"idx": 21,
"version": "6",
"when": 1778038099075,
"tag": "0021_drop-license-store-key",
"breakpoints": true
},
{
"idx": 22,
"version": "6",
"when": 1778081855257,
"tag": "0022_kind_storm",
"breakpoints": true
},
{
"idx": 23,
"version": "6",
"when": 1778091420434,
"tag": "0023_add-quota-delivery-code",
"breakpoints": true
},
{
"idx": 24,
"version": "6",
"when": 1778101953600,
"tag": "0024_remove_quota_store_packages",
"breakpoints": true
},
{
"idx": 25,
"version": "6",
"when": 1778107685233,
"tag": "0025_drop_cloud_order_id_unique",
"breakpoints": true
},
{
"idx": 26,
"version": "6",
"when": 1778128544816,
"tag": "0026_store-webhook-events",
"breakpoints": true
},
{
"idx": 27,
"version": "6",
"when": 1778200309244,
"tag": "0027_add-license-cloud-store-id",
"breakpoints": true
},
{
"idx": 28,
"version": "6",
"when": 1778246297143,
"tag": "0028_move-cloud-store-settings-to-system-options",
"breakpoints": true
},
{
"idx": 29,
"version": "6",
"when": 1778277914288,
"tag": "0029_wet_betty_brant",
"breakpoints": true
},
{
"idx": 30,
"version": "6",
"when": 1778282818664,
"tag": "0030_add-cloud-traffic-reports",
"breakpoints": true
},
{
"idx": 31,
"version": "6",
"when": 1778475474332,
"tag": "0031_talented_skullbuster",
"breakpoints": true
},
{
"idx": 32,
"version": "6",
"when": 1778557854518,
"tag": "0032_webdav-class2-state",
"breakpoints": true
},
{
"idx": 33,
"version": "6",
"when": 1780427619086,
"tag": "0033_quota-entitlement-types",
"breakpoints": true
},
{
"idx": 34,
"version": "6",
"when": 1780452954859,
"tag": "0034_gorgeous_hydra",
"breakpoints": true
},
{
"idx": 35,
"version": "6",
"when": 1780459022634,
"tag": "0035_puzzling_hemingway",
"breakpoints": true
},
{
"idx": 36,
"version": "6",
"when": 1780499047848,
"tag": "0036_add-download-task-detail",
"breakpoints": true
},
{
"idx": 37,
"version": "6",
"when": 1780502607046,
"tag": "0037_add-download-task-upload-progress",
"breakpoints": true
},
{
"idx": 38,
"version": "6",
"when": 1780596348411,
"tag": "0038_add-download-task-classification",
"breakpoints": true
},
{
"idx": 39,
"version": "6",
"when": 1780597526882,
"tag": "0039_index-download-task-classification",
"breakpoints": true
},
{
"idx": 40,
"version": "6",
"when": 1780710456844,
"tag": "0040_rename-download-task-states",
"breakpoints": true
},
{
"idx": 41,
"version": "6",
"when": 1780711176957,
"tag": "0041_add-download-task-upload-token-issued-at",
"breakpoints": true
},
{
"idx": 42,
"version": "6",
"when": 1780718094640,
"tag": "0042_download-task-status-model",
"breakpoints": true
},
{
"idx": 43,
"version": "6",
"when": 1780719304552,
"tag": "0043_normalize-download-task-runtime",
"breakpoints": true
},
{
"idx": 44,
"version": "6",
"when": 1780721031283,
"tag": "0044_add-download-task-attempt",
"breakpoints": true
},
{
"idx": 45,
"version": "6",
"when": 1781825420340,
"tag": "0045_soft_outlaw_kid",
"breakpoints": true
},
{
"idx": 46,
"version": "6",
"when": 1781825432738,
"tag": "0046_magenta_layla_miller",
"breakpoints": true
},
{
"idx": 47,
"version": "6",
"when": 1781825438681,
"tag": "0047_trash-via-trashedat",
"breakpoints": true
},
{
"idx": 48,
"version": "6",
"when": 1781925137737,
"tag": "0048_drop-storages-mode",
"breakpoints": true
}
]
}