Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
@tursodatabase/api
Advanced tools
The Turso API gives you everything needed to manage your organization and it's members, groups, databases, and API tokens.
⚠️ This SDK is still in development and is not ready for production use.
import { createClient } from "@tursodatabase/api";
const turso = createClient({
org: "", // Your personal account or organization slug
token: "...",
});
const organizations = await turso.organizations.list();
const orgMembers = await turso.organizations.update({ overages: true });
const orgMembers = await turso.organizations.delete();
const orgMembers = await turso.organizations.members();
const orgMembers = await turso.organizations.addMember("username", "admin");
const orgMembers = await turso.organizations.removeMember("username");
const invite = await turso.organizations.inviteUser(
"jamie@turso.tech",
"admin"
);
await turso.organizations.deleteInvite("jamie@turso.tech");
const invoices = await turso.organizations.invoices();
const locations = await turso.locations.list();
const closest = await turso.locations.closest();
const groups = await turso.groups.list();
const group = await turso.groups.get("default");
const group = await turso.groups.create("customgroup", "lhr");
const group = await turso.groups.create("customgroup", "ams", {
extensions: "all", // or ["uuid", "vector"]
});
const group = await turso.groups.delete("customgroup");
const group = await turso.groups.addLocation("default", "lhr");
const group = await turso.groups.removeLocation("default", "lhr");
const token = await turso.groups.createToken("default");
const token = await turso.groups.createToken("default", {
expiration: "1w2d6h3m",
authorization: "full-access",
});
const token = await turso.groups.createToken("default", {
permissions: {
read_attach: {
databases: ["db1", "db2"],
},
},
});
const token = await turso.groups.rotateTokens("default");
const tokens = await turso.apiTokens.list();
const token = await turso.apiTokens.create("superdupertokenname");
const token = await turso.apiTokens.revoke("superdupertokenname");
const token = await turso.apiTokens.validate("token");
const database = await turso.databases.list();
const database = await turso.databases.list({
schema: "parent-schema-db-name", // Filter by schema database
});
const database = await turso.databases.list({
group: "group-name", // Filter by group
});
const database = await turso.databases.list({
type: "schema", // Filter by schema dbs only
});
const database = await turso.databases.get("my-db");
const database = await turso.databases.create("db-name");
const database = await turso.databases.create("db-name", {
image: "canary",
group: "my-group",
});
const database = await turso.databases.create("db-name", {
group: "my-group",
seed: {
type: "database",
name: "my-existing-db",
},
});
const database = await turso.databases.create("db-name", {
group: "my-group",
seed: {
type: "database",
name: "my-existing-db",
timestamp: "2021-01-01T00:00:00Z", // or new Date("2021-01-01T00:00:00Z")
},
});
const database = await turso.databases.create("parent-db", {
is_schema: true,
});
const database = await turso.databases.create("child-db", {
schema: "parent-db",
});
const database = await turso.databases.updateVersion("my-db");
const database = await turso.databases.delete("my-db");
const instances = await turso.databases.listInstances("my-db");
const instances = await turso.databases.getInstance("my-db", "lhr");
const token = await turso.databases.createToken("my-db");
const token = await turso.databases.createToken("my-db", {
expiration: "1w2d6h3n",
authorization: "full-access",
});
const token = await turso.databases.createToken("my-db", {
permissions: {
read_attach: {
databases: ["db1", "db2"],
},
},
});
const token = await turso.databases.rotateTokens("my-db");
const usageStatsWithDate = await turso.databases.usage("my-db");
const usageStatsWithDate = await turso.databases.usage("my-db", {
from: new Date("2023-01-01"),
to: new Date("2023-02-01"),
});
// Using ISOStrings
const usageStatsWithString = await turso.databases.usage("my-db", {
from: "2023-01-01T00:00:00Z",
to: "2023-02-01T00:00:00Z",
});
FAQs
The Turso API gives you everything needed to manage your organization and it's members, groups, databases, and API tokens.
We found that @tursodatabase/api demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.