@pienter-tech/directus-development-kit
v0.1.1
Published
TypeScript DSL and apply engine for Directus schemas — programmatic, refactor-safe authoring with rename detection.
Downloads
25
Maintainers
Readme
Directus Development Kit (DDK)
A TypeScript DSL and apply engine for Directus schemas — programmatic, refactor-safe authoring with rename detection.
Status: 0.x — under active development, breaking changes expected.
Quickstart
npm install @pienter-tech/directus-development-kit @directus/sdk
npx ddk initddk init writes a starter ddk.config.ts with a small worked example,
which looks roughly like this:
// ddk.config.ts
import {
Schema,
Collection,
StringField,
UuidField,
TimestampField,
M2OField,
EnvAuthProvider,
directusUsers,
} from '@pienter-tech/directus-development-kit';
const articles = new Collection('articles', {
id: 'col_articles',
fields: {
id: new UuidField({ primary: true, auto: true }),
title: new StringField({ id: 'fld_articles_title' }),
body: new StringField({ id: 'fld_articles_body', length: 65535 }),
author: new M2OField({ id: 'fld_articles_author', to: directusUsers }),
date_created: new TimestampField({ id: 'fld_articles_created' }),
},
});
export default {
schema: new Schema([articles]),
auth: new EnvAuthProvider({
urlEnv: 'DIRECTUS_URL',
tokenEnv: 'DIRECTUS_TOKEN',
}),
vendor: 'postgres',
};npx ddk diff # preview the plan
npx ddk apply # plan + confirm + execute
npx ddk apply --auto-approve # CICLI
| Command | Purpose |
| ---------------- | --------------------------------------------------------------- |
| ddk init | Scaffold a starter ddk.config.ts in the current directory |
| ddk synth | Emit the desired schema state (DDK or Directus snapshot format) |
| ddk diff | Print the apply plan without executing |
| ddk apply | Run plan + confirm + execute |
| ddk sync-state | Rebuild .ddk/state.json from live Directus |
Run ddk <command> --help for command-specific options.
Documentation
License
MIT
