
Security News
GitHub to Block pull_request_target Workflows by Default Starting December 2
GitHub is tightening GitHub Actions security with new restrictions on privileged pull request workflows. Here's what changes and how maintainers are affected.
usrcp-adapter-kit
Advanced tools
Shared encrypted-at-rest config store and helpers for USRCP capture adapters
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.
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 / …
| Kind | Meaning |
|---|---|
secret | Required, encrypted at rest under the USRCP global key |
required | Required (truthy) |
requiredNumber | Required, typeof === "number" |
requiredNonEmptyArray | Required, non-empty array |
optional | Not validated (cursors, optional allowlists); may declare a default |
Apache-2.0
FAQs
Shared encrypted-at-rest config store and helpers for USRCP capture adapters
The npm package usrcp-adapter-kit receives a total of 21 weekly downloads. As such, usrcp-adapter-kit popularity was classified as not popular.
We found that usrcp-adapter-kit demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
GitHub is tightening GitHub Actions security with new restrictions on privileged pull request workflows. Here's what changes and how maintainers are affected.

Security News
/Application Security
A practical guide to securing GitHub Actions against supply chain attacks, covering malicious pull requests, credential theft, dependency risks, and release pipelines.

Security News
Composer 2.11 adds dependency cooldowns, joining package managers that delay new releases to reduce supply chain risks while allowing urgent security updates.