@ultdai/pulse 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -26,10 +26,7 @@ export default {
26
26
  source: 'my-server',
27
27
  })
28
28
 
29
- // Inicializace načte aktuální povolené typy a jejich pravidla. Další
30
- // volání používají platnou cache; po expiraci se katalog obnoví.
31
29
  context.waitUntil((async () => {
32
- await client.initialize('') // výběr organizace je rezervovaný pro budoucí katalog
33
30
  await client.emit({
34
31
  organizationId: env.ULTD_ORGANIZATION_ID,
35
32
  occurredAtMs: Date.now(),
@@ -51,10 +48,10 @@ Ukázkový PulseType výše je jen zástupný název. Skutečný název, verzi,
51
48
 
52
49
  `apiToken` patří do serverového secretu, nikdy do klientského JavaScriptu. Konstruktor bez neprázdného `apiToken` skončí chybou ještě před síťovým voláním. Unlimited ověřuje klíč znovu na `GET /v1/sdk-config` i `POST /v1/pulses`; neplatný klíč nemůže zapsat puls.
53
50
 
54
- `await client.initialize(token)` načte povolené PulseTypes, jejich schémata a pravidla měření z autorizovaného ULTD API nebo z dosud platné sdílené cache. Argument `token` je rezervovaný pro budoucí výběr organizace a jejího katalogu; v tomto POC se nepoužívá a smí být `''`. Není to API klíč ani náhrada za `apiToken`. Samotný konstruktor nemůže čekat na síť. Pokud inicializaci vynecháte, `emit()` konfiguraci načte před prvním pulsem. Neznámý typ nebo nevalidní `pulse.payload` SDK odmítne lokálně. Vypnutý nebo nevzorkovaný puls neodešle. Konfigurace má krátkou platnost a po jejím vypršení se obnovuje; pokud obnovení selže, puls se neodešle. Cloudflare cache je volitelná; bez ní SDK používá paměť instance.
51
+ Konstruktor uloží nastavení bez síťového volání. První `emit()` načte povolené PulseTypes, jejich schémata a pravidla měření z autorizovaného ULTD API nebo z dosud platné sdílené cache, a teprve potom puls lokálně validuje. Neznámý typ nebo nevalidní `pulse.payload` SDK odmítne před POSTem. Vypnutý nebo nevzorkovaný puls neodešle. Další volání používají platnou konfiguraci; po expiraci se obnoví. Pokud obnova selže, puls se neodešle. Cloudflare cache je volitelná; bez ní SDK používá paměť instance.
55
52
 
56
53
  Pro opakované pulsy může konfigurace definovat lifecycle s úvodním a průběžným PulseTypem. SDK při prvním volání odešle úvodní puls, uloží rozhodnutí o dalším měření a dodržuje interval z konfigurace. `CloudflareSessionDecisionCache(caches.default)` lze předat jako `sessionCache`, aby se toto rozhodnutí sdílelo mezi instancemi Workeru; bez něj se používá paměť instance. Cache je pouze optimalizace a její ztráta nezakládá novou logickou entitu.
57
54
 
58
55
  SDK obsahuje obecné kontrakty přibalené při buildu z monorepa. Aplikace instaluje jen `@ultdai/pulse` a jeho běžnou závislost `zod`; `@ultdai/contracts` se samostatně nevydává. SDK neobsahuje zákaznické PulseTypes. Samotné zveřejnění SDK neposkytuje oprávnění k API.
59
56
 
60
- Dnešní POC má na backendu jeden technický API klíč a jeden katalog definic. Rozdělení katalogu podle organizace je další serverový krok; rozhraní SDK už s jejím tokenem při inicializaci počítá.
57
+ Dnešní POC má na backendu jeden technický API klíč a jeden katalog definic. Budoucí výběr katalogu podle organizace bude vycházet z identity API klíče na serveru; volající nebude předávat další token ani měnit veřejné rozhraní SDK.
package/dist/index.d.ts CHANGED
@@ -49,11 +49,6 @@ export declare class UnlimitedClient {
49
49
  private install;
50
50
  private refresh;
51
51
  private configuration;
52
- /** Load the authorized, versioned PulseType catalog before producing pulses.
53
- * The organization token is reserved for future catalog scoping and currently
54
- * has no effect, including when it is an empty string. API authentication
55
- * continues to use the apiToken supplied in the constructor. */
56
- initialize(_organizationToken: string): Promise<void>;
57
52
  private decisionKey;
58
53
  private getDecision;
59
54
  private putDecision;
package/dist/index.js CHANGED
@@ -818,13 +818,6 @@ var UnlimitedClient = class {
818
818
  });
819
819
  return this.refreshing;
820
820
  }
821
- /** Load the authorized, versioned PulseType catalog before producing pulses.
822
- * The organization token is reserved for future catalog scoping and currently
823
- * has no effect, including when it is an empty string. API authentication
824
- * continues to use the apiToken supplied in the constructor. */
825
- async initialize(_organizationToken) {
826
- await this.configuration();
827
- }
828
821
  async decisionKey(groupId, organizationId, sessionId) {
829
822
  const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(
830
823
  `${await this.cacheKey}\0${groupId}\0${organizationId}\0${sessionId}`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ultdai/pulse",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "files": ["dist", "README.md"],
6
6
  "publishConfig": { "access": "public" },