Get, set, delete
Importujtekv z twenty-sdk/logic-function. Hodnoty mohou být libovolná JSON-serializovatelná data.
src/logic-functions/sync-linear-issues.ts
Rozsahy
Každá položka má rozsah, který se předává jako volba při každém volání. Výchozí hodnota jeWORKSPACE.
WORKSPACE(výchozí) — položka je soukromá pro aktuální instalaci vaší aplikace v pracovním prostoru. Každý pracovní prostor, který aplikaci nainstaluje, získá vlastní nezávislou sadu klíčů. To je to, co chcete pro keše, kurzory a stav na úrovni pracovního prostoru.SERVER— položka je sdílena napříč všemi instalacemi vaší aplikace na serveru. Serverové položky se chovají jako nároky (claims): uloženou hodnotou je vždy workspaceId, které klíč nárokuje (vynechtevaluepřiset, abyste klíč nárokovali pro aktuální pracovní prostor) a pouze tento pracovní prostor ji může přepsat nebo smazat. Každá instalace může položku číst.
kv.set vyvolá výjimku, když je klíč už nárokován jiným pracovním prostorem.
Použití: kešujte nákladné volání
Typickým použitím je kešování pomalé nebo omezované (rate-limited) odpovědi třetí strany, aby opakované běhy znovu použily výsledek místo placení nákladů při každém spuštění.src/logic-functions/getExchangeRate.logic-function.ts
Vzorové postupy a tipy
- Jmenné prostory. Přidávejte prefixy ke klíčům, abyste oddělili různé oblasti —
sync-cursor:linear,cache:exchange-rate:USD:EUR,lock:nightly-report. - Expirace (TTL). Úložiště nemá vestavěnou expiraci. Uložte časové razítko dovnitř hodnoty (jako v příkladu s keší) a při čtení ho kontrolujte, nebo čistěte zastaralé klíče z funkce spouštěné cronem.
- Co ukládat. Jakákoli JSON-serializovatelná hodnota — čísla, řetězce, pole, objekty. Držte záznamy malé; toto je určeno pro koordinaci a kešování, ne pro velké objekty blob nebo soubory. Pro soubory použijte pole
FILESauploadFile. - Viditelnost. Položky žijí v databázi instance, ne jako záznamy pracovního prostoru — nikdy se neobjevují v uživatelském rozhraní pracovního prostoru, nejsou součástí datového modelu vaší aplikace a nevyžadují žádná oprávnění k rolím ani objektům.
Alternativa: dotazovatelný objekt úložiště
Vestavěné úložiště je záměrně neprůhledné: položky nejsou záznamy, takže je nemůžete procházet v UI, propojovat s jinými objekty nebo filtrovat pomocí dotazů na záznamy. Kdykoli něco z toho potřebujete — například viditelný log synchronizace nebo stav na úrovni záznamu — definujte místo toho malý technický objekt s jedinečným polemkey a polem value typu RAW_JSON a dotazujte ho přes typovaný API klient. Viz Objects pro referenci k defineObject a Data → Unique indexes pro vynucení jedinečnosti klíče.
- Omezení na záznam. Přidejte relaci z objektu úložiště na cílový objekt namísto zakódování id do klíče.
- Viditelnost a oprávnění. Řádky žijí v databázi pracovního prostoru jako jakýkoli jiný záznam, takže je lze dotazovat přes API a respektují role vaší aplikace. Aby se úložiště neobjevovalo v hlavním rozhraní, neuvádějte ho v navigačním menu.
Na rozdíl od vestavěného úložiště je vlastní objekt vždy omezený na jeden pracovní prostor — nemůže sdílet položky napříč instalacemi tak, jako to dělají klíče
SERVER.