← 全部的單
GitHub #297 ↗
Compute 互通・功能
畫布上有檔的人,在檔案元件上按「送到 Compute」,拿到一組 24 小時內有效、只能用一次的交換代碼,到 Farside Compute 開任務時貼上,Compute 就拿得到這個檔當輸入;不用先下載再上傳,Slate 的檔案區鑰匙也不交給 Farside。
#297 Slate 的檔案給 Compute 當輸入:反方向交換桶+交換代碼(ADR-0115 另裁)
狀態
還沒開始
誰在做
宜芳分派
做到哪
還沒有程式,也還沒有介面草案。本文列的五題待裁,負責人 10/05 全部照 PM 建議定了(
#326
二)。檔案元件那張 PR
#317
在按鈕列預留了「送到 Compute」的位置、這一波不畫(
ADR-0124
修訂(十)七),但
#317
還沒合進 main。
卡在
排程:10/05 定了排在
#252
(正向匯入)與「第一階段帳務」之後,而
#252
現在連介面草案都還沒出;入口要等檔案元件
#317
合進 main;Farside 那一側(交換桶的唯讀權杖、任務輸入能貼代碼)還沒分派。
下一步
現在不用動手寫程式。宜芳:① 釘出「第一階段帳務」是哪幾張,排出這張的開工點;② 請負責人+Claude 更新
#297
本文(五題已定、分工改照
#326
),拿掉「待負責人裁決」標籤;③ 開工前把下面「還沒定的」第 1~3 題送負責人裁(排程、畫布上的圖、格式清單);④
#252
草案出來後,分派 Slate 與 Farside 兩側實作。
提醒:
① 本文過期了:〈還沒裁的〉五題 10/05 都定了,「待負責人裁決」標籤可以拿掉;本文寫「Slate 側(我們)」做,但
#326
〈分工〉把
#297
實作端列在宜芳分派,以
#326
為準——建議請負責人+Claude 更新本文、補「委託處理」標籤。② 「第一階段帳務」沒有任何一張單定義過,要先釘哪幾張,這張才排得出時間。③ 三張是一串:
#296
等
#252
的介面草案、
#252
的實作等
#296
、這張排在
#252
之後——
#252
現在連草案都還沒出,這張短期內不會開工。④ 圖片的缺口:
#289
定了圖片放上畫布照舊是「畫布上的圖」、不是檔案元件;入口只放檔案元件,畫布上的照片就送不出去,而照片正是 3DGS 這類任務最常見的輸入,開工前要先裁。⑤ 10/05 的格式寫「圖、3D、模型」,本文原本寫「圖、影片、點雲、模型」,影片在不在要確認;Farside 現在的自動流程只跑 3DGS(
#296
10/04 的調查),實際收什麼輸入要那一側列。⑥ Viewer 本來就能下載檔案元件(
#289
、
ADR-0118
),他下載後自己上傳 Farside 一樣送得出去——「Viewer 不能送」照驗收做沒問題,只是別把它當成安全邊界。
一步一步 8
已經定的 17
還沒定的 10
怎麼驗收 12
這張不做 8
這張要解決什麼
用 Slate 畫布的人(例如事務所裡的設計師),同時也在 Farside Compute 跑 GPU 任務
,要給 Compute 處理的檔(例如 3D 模型、圖檔)已經放在 Slate 的畫布上,今天只能先下載到自己電腦,再到 Farside 上傳一次——要能 在畫布上那個檔旁邊按一下拿到代碼,到 Farside 開任務時貼上就好;Slate 這邊記得是誰、哪個檔、什麼時候送出去的
一步一步
8 步
使用者(在 Slate,這張畫布的 Editor 以上)
在畫布上看到一個檔案元件,按按鈕列上「下載」旁邊的「送到 Compute」
系統開始複製這個檔(下一步);按鈕旁有一句話講清楚會發生什麼——10/05 定了不升告知、改在按鈕旁講明,那句話怎麼寫還沒定
畫布:檔案元件(按鈕列多一顆「送到 Compute」)
檔名(例如 model.glb)
種類・檔案大小
預覽,或「這種檔不能在畫布上預覽,可以下載」
來源那一行(從哪張畫布拿來的、生成的……)
下載
送到 Compute
按鈕旁的說明(措辭待定):會複製一份到 Compute 的交換區、給你一組代碼到 Farside 貼
Slate 系統(後端)
先檢查:這個人對這張畫布能寫、這個檔在這張畫布上、格式在 Compute 收的清單裡。通過就把這個檔複製一份到交換桶(Slate 寫、Farside 只讀,跟 Slate 自己的檔案桶分開),產生一組交換代碼(亂數至少 128 bit、有期限、不是檔案路徑)
交換桶多一份那個檔;記一筆送出紀錄:誰、哪個檔、什麼時候送、代碼何時過期。畫布上的原檔不動
使用者(在 Slate)
看到代碼框,按「複製代碼」
代碼在剪貼簿裡,知道要在 24 小時內到 Farside 用掉;關掉之後還看不看得到這組代碼還沒定
畫布:送出完成的代碼框
已送到 Compute 的交換區
交換代碼(唯讀,一長串亂數)
複製代碼
24 小時內有效、只能用一次;到 Farside 開任務時貼在輸入那一格
交換區的這一份 7 天後自動刪除;畫布上的原檔不受影響
關閉
使用者(在 Farside)
開一個新任務,在輸入的地方貼上交換代碼
任務把那個檔當輸入(這個畫面是 Farside 那一側做的,長相由那一側決定)
Farside:開任務的輸入(Farside 那一側做)
新任務
貼上 Slate 的交換代碼
開始
Farside 系統
用交換桶的唯讀權杖,找到這組代碼對到的那一份;自己看清單上的過期時間、看這組有沒有用過,都沒問題才讀進任務
任務拿到檔、檢查碼跟 Slate 那份一致;這組代碼記成用過(誰記、怎麼記還沒定)。Farside 對 Slate 自己的檔案桶沒有任何權限,Slate 也不會知道代碼被用掉了
使用者(在 Farside)
貼了過期的、用過的、打錯的代碼,或貼了一段檔案路徑
Farside 說這組代碼不能用,任務拿不到任何檔
Farside:代碼不能用(Farside 那一側做)
這組代碼不能用(過期、用過或打錯)
貼上 Slate 的交換代碼(保留剛剛貼的內容)
Slate 系統(背景)
送出 7 天後,交換桶裡那一份自動刪除
交換桶不會越堆越多。R2 的自動刪除可能晚將近一天,所以「24 小時」不能靠自動刪除來擋,要 Farside 讀的時候自己看過期時間(上一步)
只能看的人(Viewer)、用連結進來的人
打開同一張畫布,看同一個檔案元件
Viewer 看得到「下載」,看不到「送到 Compute」,直接打送出的端點也被擋;用編輯連結進來的訪客碰不到這個功能;唯讀連結的人連下載都沒有
畫布:檔案元件(Viewer 看到的)
檔名
下載
按鈕列沒有「送到 Compute」
已經定的
17 條
不把
#296
的檔案池改成雙向;另開一個反方向的交換桶,Slate 寫、Farside 只讀,每個桶只有一個寫入方。做法是 Slate 把檔複製一份過去、給一組代碼,不是讓 Farside 來讀 Slate 的桶
ADR-0115
(裁決四後面「另裁」那一段);
#297
本文〈已經裁定的〉、〈要做什麼〉1
Slate 檔案桶的鑰匙不交出去;Farside 對 Slate 的正本桶讀寫都不行(那裡有對外單據的正本)
ADR-0115
裁決三、〈與
ADR-0100
§6.1 的關係〉
帳號合併之前不做「畫布呼叫 Compute」——所以是發代碼、人自己到 Farside 貼,Slate 不替人開 Compute 任務
ADR-0115
裁決二;
#297
本文〈已經裁定的〉
跟 Compute 之間只有檔案往來,不在 Slate 看 Compute 的任務紀錄、用量
負責人 10/03(
#297
本文〈已經裁定的〉)
排在
#252
(正向匯入)與第一階段帳務之後
負責人 10/05「照PM建議」(
#326
二、
#297
留言,Q1)
入口放在檔案元件旁(入口在資料旁)
負責人 10/05「照PM建議」(
#326
二、
#297
留言,Q2);
ADR-0066
檔案元件的按鈕列預留「送到 Compute」這顆鈕的位置,檔案元件那一波不畫
ADR-0124
修訂(十)七(在 PR
#317
的分支,還沒合進 main)
能送的格式照 Compute 需要的(圖、3D、模型),不是什麼檔都送
負責人 10/05「照PM建議」(
#326
二、
#297
留言,Q3)
不升告知版本,改在按鈕旁講清楚
負責人 10/05「照PM建議」(
#326
二、
#297
留言,Q4)
交換代碼一次性、24 小時有效;交換桶裡的檔暫存 7 天自動清掉
負責人 10/05「照PM建議」(
#326
二、
#297
留言,Q5)
交換代碼亂數至少 128 bit、有期限、不能拿檔案路徑當代碼(跟
#296
成果代碼同一套規格,方向相反)
#297
本文〈要做什麼〉3;
ADR-0115
〈安全要求〉
每一次送出都要有紀錄:誰、哪個檔、什麼時候送出、代碼何時過期(跟智慧元件出境紀錄同一套思路)
#297
本文〈要做什麼〉2、〈驗收條件〉第 5 條
只能看的人(Viewer)、別的機構送不出去;新端點要有跨機構隔離測試才能合併
#297
本文〈驗收條件〉第 4 條、〈測試方式〉;
ADR-0019
決策二
用編輯連結進來的訪客只能經畫布同步改內容,碰不到其他任何端點;唯讀連結的人不能下載檔案
ADR-0125
(訪客只收列舉的端點,決策一、三);
#316
一
Farside 那把權杖只能讀交換桶;Cloudflare 後台要盤點得出這件事
#297
本文〈要做什麼〉Farside 側 1、〈測試方式〉權限盤點
合併之前 Slate 不記 Compute 的錢或點數;現在整個平台也只記錄、不扣點不收錢。Compute 任務本身照 Farside 自己的每小時固定表扣點
ADR-0115
裁決四(「合併之前」那半句);
#248
本文「帳務:已裁定的事實」〈兩邊的關係〉〈註冊與收費開關〉
實作端由宜芳分派;之後新工作一律先給宜芳看、由她分派
#326
〈分工〉與負責人 10/05 補充
還沒定的
10 題
「第一階段帳務」是哪幾張、做到哪裡才算完?10/05 定了這張排在它之後,但沒有任何一張單寫過它的範圍
只算會員與訂閱第一刀(
#256
)+點數帳本的唯讀監控(
#243
前半)
要等扣點與收費開關也做完
其他
誰裁:宜芳確認、負責人點頭
畫布上的圖不是檔案元件(
#289
定了圖片照舊變成畫布上的圖),入口只放檔案元件的話,畫布上的照片送不出去——要不要讓圖也能送?
畫布上的圖也加同一顆「送到 Compute」
只有檔案元件能送,圖這一版不能送
建議:
圖也加(建議,未定):照片常是 Compute 任務的輸入,而「入口在資料旁」對圖一樣成立
誰裁:負責人
「Compute 需要的格式」實際清單是什麼?影片算不算?清單外的檔按鈕怎麼辦?
Farside 那一側照 Compute 現在真的收的輸入列一份清單(本文第 3 題原本就寫「清單要 Farside 那邊給」)
影片放不放進清單:10/05 那句寫「圖、3D、模型」,本文原本寫「圖、影片、點雲、模型」
清單外的檔:按鈕不出現,或灰掉並寫原因
建議:
清單由 Farside 那一側給;影片要不要放進去請負責人確認;清單外的檔按鈕不出現(建議,未定)
誰裁:Farside 那一側(宜芳分派)列清單,負責人確認
一次送一個檔,還是一次送一組(例如做 3DGS 要一整組照片)?
一個檔一組代碼
選好幾個檔一起送,拿一組代碼
誰裁:Farside 那一側先說任務的輸入是一個檔還是一組,負責人決定
交換桶的介面:Farside 怎麼從一組代碼找到那一份?「這組已經用過」誰記?(Farside 只能讀交換桶,不能靠刪檔來作廢代碼)
沿用
#252
介面草案的清單檔格式、方向反過來(Slate 寫、Farside 讀);用過由 Farside 自己記
Farside 每次用掉回頭通知 Slate(Compute 就得知道 Slate 存在,違反
ADR-0115
的前提)
另外訂一套格式
建議:
沿用
#252
的格式、Farside 自己記(建議,未定):一套格式兩個方向,跟
#252
「讀的那一方記」同一個道理
誰裁:實作的人(宜芳分派)出草案,Farside 那一側與負責人確認
按鈕旁那句說明怎麼寫?
草稿:「複製一份到 Compute 的交換區,給你一組代碼;24 小時內到 Farside 貼上、只能用一次;交換區的這一份 7 天後自動刪除」
其他寫法
誰裁:負責人
代碼框關掉之後,還看得到那組代碼嗎?
只顯示一次,關掉要重送一次拿新代碼(Slate 只存代碼的雜湊,外洩的風險小)
之後在送出紀錄裡還看得到(要存代碼原文)
建議:
只顯示一次(建議,未定)
誰裁:負責人
交換桶裡那一份算不算機構的檔案空間?同一個檔一直按,會不會一直複製?
不算(7 天就刪),也不限次數
算進機構空間,直到刪掉
不算,但限制次數
誰裁:負責人
送出紀錄誰看得到、留多久?
只留在後台給工程查
檔案元件或管理台看得到「這個檔送出過幾次」
保存天數另訂
誰裁:負責人
本文〈測試方式〉寫「沒有任何一把權杖同時能寫交換桶、又能讀寫 Slate 正本桶」——照字面,Slate 就不能用一把權杖做 R2 伺服器端複製,檔要經過容器轉一手(大檔受容器記憶體與時間限制)。是這個意思嗎?
照字面:兩把權杖,經過容器轉
Slate 自己的一把權杖可以同時讀正本桶、寫交換桶(Farside 那把照舊只讀交換桶),用伺服器端複製
建議:
工程先用小檔實測兩種,再請負責人確認那句的意思
誰裁:工程(宜芳分派)實測,負責人確認
怎麼驗收
12 項
前提:
測試機構的帳號,是某張畫布的 Editor 以上;畫布上有一個 Compute 收得下的檔案元件(格式清單定了之後挑一個)
操作:
按檔案元件上的「送到 Compute」
應該看到:
跳出代碼框:一長串代碼、「複製代碼」、寫明 24 小時內有效、只能用一次、交換區 7 天後刪;按鈕旁看得到那句說明;畫布上的原檔沒有變
前提:
上一步拿到的代碼;Farside 測試帳號(要等 Farside 那一側做好)
操作:
在 Farside 開新任務、貼代碼、開始
應該看到:
任務讀得到那個檔;工程附上 Slate 原檔與 Farside 讀到那份檢查碼一致的紀錄
前提:
同一組代碼已經在 Farside 用過一次
操作:
在 Farside 再貼一次
應該看到:
Farside 說這組代碼不能用,任務拿不到檔
前提:
一組超過 24 小時的代碼(工程可以在測試環境把期限調短來測)、一組改掉一個字的代碼、一段檔案路徑
操作:
分別在 Farside 貼上
應該看到:
三次都讀不到檔
前提:
一個 Compute 不收的格式的檔案元件
操作:
看那個檔案元件的按鈕列
應該看到:
照裁定的做法:沒有「送到 Compute」,或灰掉並寫原因
前提:
同一張畫布,換成只能看(Viewer)的帳號
操作:
看同一個檔案元件
應該看到:
有「下載」、沒有「送到 Compute」;工程附上「Viewer 直接打送出端點被擋」的自動測試綠燈
前提:
同一張畫布開一條編輯連結,用無痕視窗以訪客身分進去
操作:
看同一個檔案元件
應該看到:
沒有「送到 Compute」
前提:
另一個機構的帳號
操作:
(工程用自動測試)試著送 A 機構畫布上的檔
應該看到:
被擋、看不出那張畫布存在;工程附上跨機構隔離測試的綠燈
前提:
前面幾步送出過幾次
操作:
請工程調出送出紀錄
應該看到:
每一次都有一筆:誰、哪個檔、什麼時候送、代碼何時過期
前提:
某一次送出已經超過 8 天(7 天加上 R2 自動刪除最多晚的一天)
操作:
請工程查交換桶
應該看到:
那一份已經不在;畫布上的原檔還在、照樣能下載
前提:
工程在 Cloudflare 後台列出所有 API 權杖
操作:
PM 看權杖清單截圖
應該看到:
Farside 那把只能讀交換桶;Farside 對 Slate 正本桶沒有任何權限;Slate 那把的範圍符合「還沒定的」最後一題的裁定
前提:
測試機構,螢幕寬度 1440、1180、820 各一次
操作:
從按「送到 Compute」到在 Farside 貼上走一遍並錄影
應該看到:
三種寬度都順利走完,錄影的展示頁連結貼回這張單
這張不做
畫布直接替人開 Compute 任務、送工作規格(帳號合併之前不做,
ADR-0115
裁決二;合併之後要不要開,在合併那一份 ADR 重裁)
把 Slate 檔案桶的權杖交給 Farside,或讓 Farside 讀 Slate 的桶
把
#296
的檔案池改成雙向
帳號綁定(Slate 帳號連 Farside 帳號)
在 Slate 看 Compute 的任務紀錄、用量
畫布左側工具列的「送到 Compute」入口(10/05 選的是放在檔案元件旁,沒有選「也從工具列送」)
告知升版(10/05 定了不升,按鈕旁講明)
什麼格式都能送(10/05 定了照 Compute 需要的)
相關的單
#248
#252
#289
#296
#302
#316
#317
#326