Skip to content

feat: support multi-actor Seedance authorization - #19

Merged
lyz52789 merged 9 commits into
mainfrom
agent/seedance-user-authorization
Jul 13, 2026
Merged

feat: support multi-actor Seedance authorization#19
lyz52789 merged 9 commits into
mainfrom
agent/seedance-user-authorization

Conversation

@lyz52789

Copy link
Copy Markdown

Summary

  • add multiple independently authorized Seedance actor profiles per account
  • add public mobile consent, BytePlus H5 handoff, and actor-controlled revocation without Token123 login
  • enforce 30/60/180/365-day or revocable long-term authorization synchronously for uploads and asset:// generation
  • preserve expired/revoked actor cleanup access while closing the legacy single-group authorization bypass

Verification

  • env GOCACHE=/private/tmp/new-api-go-build-cache go test ./... -count=1
  • bun test src/components/seedance-assets/state.test.js src/pages/SeedanceAuthorizationConsent/index.test.mjs src/pages/SeedanceAuthorizationCallback/index.test.mjs src/volc-asset-setting-regression.test.mjs
  • focused ESLint for all changed Seedance frontend files
  • bun run build
  • git diff --check

Operational acceptance

  • run the production H5 liveness step with the administrator account qw52789@gmail.com
  • confirm an asset:// generation is allowed while active and rejected immediately after revocation/expiry
  • confirm Seedance production resale pricing remains BytePlus cost × 1.2 (20% markup)

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 13, 2026

Copy link
Copy Markdown

Deploying new-api with  Cloudflare Pages  Cloudflare Pages

Latest commit: caa3f1d
Status: ✅  Deploy successful!
Preview URL: https://cd250ce2.new-api-d57.pages.dev
Branch Preview URL: https://agent-seedance-user-authoriz.new-api-d57.pages.dev

View logs

…uthorization

# Conflicts:
#	web/dist/assets/_baseUniq-ADIquyzw.js
#	web/dist/assets/_baseUniq-BdnFklZR.js
#	web/dist/assets/_baseUniq-DoHIFxgz.js
#	web/dist/assets/arc-ChKLCFVQ.js
#	web/dist/assets/arc-DlSoA9Yc.js
#	web/dist/assets/arc-jdPouQ8L.js
#	web/dist/assets/architectureDiagram-Q4EWVU46-1NGNJ7Hb.js
#	web/dist/assets/architectureDiagram-Q4EWVU46-DVX--xZ8.js
#	web/dist/assets/architectureDiagram-Q4EWVU46-Db6dxomd.js
#	web/dist/assets/blockDiagram-DXYQGD6D-0OP0LmIR.js
#	web/dist/assets/blockDiagram-DXYQGD6D-BKq-Evpq.js
#	web/dist/assets/blockDiagram-DXYQGD6D-CACtKQoE.js
#	web/dist/assets/c4Diagram-AHTNJAMY-Bp873HIc.js
#	web/dist/assets/c4Diagram-AHTNJAMY-CQFjvY5e.js
#	web/dist/assets/c4Diagram-AHTNJAMY-XglnSTE5.js
#	web/dist/assets/chunk-4BX2VUAB-CKec0f0D.js
#	web/dist/assets/chunk-4BX2VUAB-D3us0nYO.js
#	web/dist/assets/chunk-4BX2VUAB-DzMcClyg.js
#	web/dist/assets/chunk-4TB4RGXK-2GUFuVNg.js
#	web/dist/assets/chunk-4TB4RGXK-BrXeGXSQ.js
#	web/dist/assets/chunk-4TB4RGXK-D4LP6UUn.js
#	web/dist/assets/chunk-55IACEB6-D-sRa6YO.js
#	web/dist/assets/chunk-55IACEB6-D0myzu1j.js
#	web/dist/assets/chunk-55IACEB6-DNcilI0L.js
#	web/dist/assets/chunk-EDXVE4YY-BbEUJGsQ.js
#	web/dist/assets/chunk-EDXVE4YY-CP6fciq-.js
#	web/dist/assets/chunk-EDXVE4YY-QBETbia2.js
#	web/dist/assets/chunk-FMBD7UC4-B791tufb.js
#	web/dist/assets/chunk-FMBD7UC4-BSi1cYPl.js
#	web/dist/assets/chunk-FMBD7UC4-DNINhn-g.js
#	web/dist/assets/chunk-OYMX7WX6-BEG59191.js
#	web/dist/assets/chunk-OYMX7WX6-CA9kmvWi.js
#	web/dist/assets/chunk-OYMX7WX6-DRjKvwOe.js
#	web/dist/assets/chunk-QZHKN3VN-B4j0XW6t.js
#	web/dist/assets/chunk-QZHKN3VN-C67pbYv1.js
#	web/dist/assets/chunk-QZHKN3VN-D-K7COap.js
#	web/dist/assets/chunk-YZCP3GAM-BZVZFKAk.js
#	web/dist/assets/chunk-YZCP3GAM-BnJc7VHA.js
#	web/dist/assets/chunk-YZCP3GAM-ZgJzYDyz.js
#	web/dist/assets/classDiagram-6PBFFD2Q-D59Ejyt7.js
#	web/dist/assets/classDiagram-6PBFFD2Q-DW6FfSUq.js
#	web/dist/assets/classDiagram-6PBFFD2Q-tX6V6PsU.js
#	web/dist/assets/classDiagram-v2-HSJHXN6E-D59Ejyt7.js
#	web/dist/assets/classDiagram-v2-HSJHXN6E-DW6FfSUq.js
#	web/dist/assets/classDiagram-v2-HSJHXN6E-tX6V6PsU.js
#	web/dist/assets/cose-bilkent-S5V4N54A-BLmiC7Vc.js
#	web/dist/assets/cose-bilkent-S5V4N54A-DDil2UDk.js
#	web/dist/assets/cose-bilkent-S5V4N54A-DnHTdVns.js
#	web/dist/assets/dagre-KV5264BT-DsZq0bx5.js
#	web/dist/assets/dagre-KV5264BT-Dtn1BAT5.js
#	web/dist/assets/dagre-KV5264BT-S-b43U9g.js
#	web/dist/assets/diagram-5BDNPKRD-CGuG-zZS.js
#	web/dist/assets/diagram-5BDNPKRD-Dusw-umS.js
#	web/dist/assets/diagram-5BDNPKRD-R_5X7FWh.js
#	web/dist/assets/diagram-G4DWMVQ6-CF1EmOA3.js
#	web/dist/assets/diagram-G4DWMVQ6-Cfi_hzYi.js
#	web/dist/assets/diagram-G4DWMVQ6-DLeIs6WE.js
#	web/dist/assets/diagram-MMDJMWI5-B4BVKjPd.js
#	web/dist/assets/diagram-MMDJMWI5-DMIe6GPX.js
#	web/dist/assets/diagram-MMDJMWI5-Deg4_G-b.js
#	web/dist/assets/diagram-TYMM5635-CsQdBPSC.js
#	web/dist/assets/diagram-TYMM5635-DCiUZAnU.js
#	web/dist/assets/diagram-TYMM5635-evzlDZQs.js
#	web/dist/assets/erDiagram-SMLLAGMA-BlhcNfja.js
#	web/dist/assets/erDiagram-SMLLAGMA-DDBQlR4k.js
#	web/dist/assets/erDiagram-SMLLAGMA-D_THJKra.js
#	web/dist/assets/flowDiagram-DWJPFMVM-BNKUJjn2.js
#	web/dist/assets/flowDiagram-DWJPFMVM-CCLTsiNx.js
#	web/dist/assets/flowDiagram-DWJPFMVM-hXd70wxp.js
#	web/dist/assets/ganttDiagram-T4ZO3ILL-4glDPBUJ.js
#	web/dist/assets/ganttDiagram-T4ZO3ILL-CzzBIcjU.js
#	web/dist/assets/ganttDiagram-T4ZO3ILL-DgC_Lkg0.js
#	web/dist/assets/gitGraphDiagram-UUTBAWPF--gTPYjkb.js
#	web/dist/assets/gitGraphDiagram-UUTBAWPF-CGdTYaij.js
#	web/dist/assets/gitGraphDiagram-UUTBAWPF-D__DA270.js
#	web/dist/assets/graph-BDfS68lx.js
#	web/dist/assets/graph-Dyt6e-jG.js
#	web/dist/assets/graph-DzXPdeFr.js
#	web/dist/assets/index-BPGopYJ_.js
#	web/dist/assets/index-BpVw6dOr.js
#	web/dist/assets/index-BzLBKzmZ.js
#	web/dist/assets/index-C-Ra9f_-.js
#	web/dist/assets/index-C78GE57S.js
#	web/dist/assets/index-CAAG0WwH.js
#	web/dist/assets/index-CJ5uI1RG.js
#	web/dist/assets/index-CJDXJq4R.js
#	web/dist/assets/index-CLAxfZ5x.js
#	web/dist/assets/index-CUchZ9qe.js
#	web/dist/assets/index-CZpdoAl4.js
#	web/dist/assets/index-CcA0DLQe.js
#	web/dist/assets/index-CzOS0lGL.js
#	web/dist/assets/index-DHF4wE6b.js
#	web/dist/assets/index-DnreAoPM.js
#	web/dist/assets/index-OW5eCPoD.js
#	web/dist/assets/index-ScK-wGIT.js
#	web/dist/assets/index-XU1L_h6f.js
#	web/dist/assets/infoDiagram-42DDH7IO-BnrCu4Uo.js
#	web/dist/assets/infoDiagram-42DDH7IO-DK3zn7cO.js
#	web/dist/assets/infoDiagram-42DDH7IO-y1-YqUzx.js
#	web/dist/assets/ishikawaDiagram-UXIWVN3A-6WptALfl.js
#	web/dist/assets/ishikawaDiagram-UXIWVN3A-CyWP9JIE.js
#	web/dist/assets/ishikawaDiagram-UXIWVN3A-Lp1_9dte.js
#	web/dist/assets/journeyDiagram-VCZTEJTY-BdeVHbbW.js
#	web/dist/assets/journeyDiagram-VCZTEJTY-CxKTIAd_.js
#	web/dist/assets/journeyDiagram-VCZTEJTY-UeYmkxtD.js
#	web/dist/assets/kanban-definition-6JOO6SKY-7kMyK-tF.js
#	web/dist/assets/kanban-definition-6JOO6SKY-BoKHY14x.js
#	web/dist/assets/kanban-definition-6JOO6SKY-YemcX99z.js
#	web/dist/assets/layout-D1sXTbmN.js
#	web/dist/assets/layout-DJo0fNiq.js
#	web/dist/assets/layout-loYirR32.js
#	web/dist/assets/linear-BkqF0flk.js
#	web/dist/assets/linear-CGkJIyGL.js
#	web/dist/assets/linear-rvr2Hrqg.js
#	web/dist/assets/min-BDP8OkNM.js
#	web/dist/assets/min-C2hDqF7N.js
#	web/dist/assets/min-CdKOOiMg.js
#	web/dist/assets/mindmap-definition-QFDTVHPH-3k1up8BU.js
#	web/dist/assets/mindmap-definition-QFDTVHPH-DwpkhukV.js
#	web/dist/assets/mindmap-definition-QFDTVHPH-FIN5ZNZO.js
#	web/dist/assets/pieDiagram-DEJITSTG-BztBamva.js
#	web/dist/assets/pieDiagram-DEJITSTG-Cpi3C-5f.js
#	web/dist/assets/pieDiagram-DEJITSTG-QXYjM4Ul.js
#	web/dist/assets/quadrantDiagram-34T5L4WZ-Civ2AkQg.js
#	web/dist/assets/quadrantDiagram-34T5L4WZ-DYs8JhCk.js
#	web/dist/assets/quadrantDiagram-34T5L4WZ-zBMnQ2-I.js
#	web/dist/assets/requirementDiagram-MS252O5E-B2NJjyQN.js
#	web/dist/assets/requirementDiagram-MS252O5E-CioMhLHl.js
#	web/dist/assets/requirementDiagram-MS252O5E-CqASYVuM.js
#	web/dist/assets/sankeyDiagram-XADWPNL6-CraBYy1O.js
#	web/dist/assets/sankeyDiagram-XADWPNL6-Cz2jEshP.js
#	web/dist/assets/sankeyDiagram-XADWPNL6-UL3qc_0i.js
#	web/dist/assets/sequenceDiagram-FGHM5R23-Dk15KH0z.js
#	web/dist/assets/sequenceDiagram-FGHM5R23-Xyg6WlHx.js
#	web/dist/assets/sequenceDiagram-FGHM5R23-ubDl6g5W.js
#	web/dist/assets/stateDiagram-FHFEXIEX-B61srT2H.js
#	web/dist/assets/stateDiagram-FHFEXIEX-H3enVnJ_.js
#	web/dist/assets/stateDiagram-FHFEXIEX-o-l0ss0i.js
#	web/dist/assets/stateDiagram-v2-QKLJ7IA2-1pp2dRxf.js
#	web/dist/assets/stateDiagram-v2-QKLJ7IA2-B8hRddYQ.js
#	web/dist/assets/stateDiagram-v2-QKLJ7IA2-CDsiTcP0.js
#	web/dist/assets/timeline-definition-GMOUNBTQ-BjvUMnrW.js
#	web/dist/assets/timeline-definition-GMOUNBTQ-DWMdFNdG.js
#	web/dist/assets/timeline-definition-GMOUNBTQ-n4wbsF9M.js
#	web/dist/assets/vennDiagram-DHZGUBPP--lhXuj83.js
#	web/dist/assets/vennDiagram-DHZGUBPP-1GZ-gQwE.js
#	web/dist/assets/vennDiagram-DHZGUBPP-BIi4FP8E.js
#	web/dist/assets/wardley-RL74JXVD-BRtC0F0C.js
#	web/dist/assets/wardley-RL74JXVD-CJQbWNMu.js
#	web/dist/assets/wardley-RL74JXVD-DOSq-VZo.js
#	web/dist/assets/wardleyDiagram-NUSXRM2D-B-E6b46g.js
#	web/dist/assets/wardleyDiagram-NUSXRM2D-C6TJrYXm.js
#	web/dist/assets/wardleyDiagram-NUSXRM2D-DQLnaKH-.js
#	web/dist/assets/xychartDiagram-5P7HB3ND-B-OBA5Qu.js
#	web/dist/assets/xychartDiagram-5P7HB3ND-B8clOxV-.js
#	web/dist/assets/xychartDiagram-5P7HB3ND-DvakUFCx.js
#	web/dist/index.html
#	web/src/components/seedance-assets/state.js
#	web/src/components/seedance-assets/state.test.js
#	web/src/pages/SeedanceAuthorizationCallback/index.jsx
@lyz52789
lyz52789 merged commit 8ea274a into main Jul 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant