Sign In

usrcp-adapter-kit

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

usrcp-adapter-kit

Shared encrypted-at-rest config store and helpers for USRCP capture adapters

latest
Source
npmnpm
Version
0.2.6
Version published
Weekly downloads
51
-79.44%
Maintainers
1
Weekly downloads
 
Created
Source

usrcp-adapter-kit

Shared building blocks for USRCP capture adapters.

Today this is the encrypted-at-rest config store that every USRCP capture adapter (Linear, GitHub, Gmail, Google Calendar, Slack, Telegram, Discord, iMessage) builds on. It is the single deep-importer of usrcp-core's encryption primitives — adapters depend on this kit rather than reaching into usrcp-core internals. This kit also provides the shared localhost Google OAuth flow at usrcp-adapter-kit/google-oauth (used by the gmail + google-calendar adapters).

This is internal infrastructure for the USRCP adapter ecosystem; you generally install it transitively by installing an adapter, not directly.

What it does

createAdapterConfig() takes a declarative field spec and returns a complete config store: AES-GCM secret encryption at rest (mode 0600), atomic writes, a validate-or-exit gate, legacy-plaintext auto-migration, master-key rotation re-encryption, and debounced cursor persistence.

import { createAdapterConfig } from "usrcp-adapter-kit";

interface LinearConfig {
  linear_api_key: string;
  allowlisted_team_ids: string[];
  domain: string;
  poll_interval_s: number;
  last_synced_at?: string;
}

const store = createAdapterConfig<LinearConfig>({
  adapterName: "linear",
  filename: "linear-config.json",
  fields: [
    { name: "linear_api_key", kind: "secret" },
    { name: "allowlisted_team_ids", kind: "requiredNonEmptyArray" },
    { name: "domain", kind: "required" },
    { name: "poll_interval_s", kind: "requiredNumber" },
    { name: "last_synced_at", kind: "optional" },
  ],
  cursorFields: ["last_synced_at"],
});

// store.writeConfig / loadConfig / preflightConfig /
// reencryptConfigUnderNewKey / saveCursors / flushCursors / …

Field kinds

KindMeaning
secretRequired, encrypted at rest under the USRCP global key
requiredRequired (truthy)
requiredNumberRequired, typeof === "number"
requiredNonEmptyArrayRequired, non-empty array
optionalNot validated (cursors, optional allowlists); may declare a default

License

Apache-2.0

Keywords

usrcp

FAQs

Package last updated on 04 Aug 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts