plattr-dev
Reads a developer's plattr.yaml and starts a complete local environmentwith PostgreSQL, MinIO, PostgREST, and the app — all inside the Dagger engine.
Installation
dagger install github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8eddEntrypoint
Return Type
PlattrDev Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
func (m *MyModule) Example() *dagger.PlattrDev {
return dag.
PlattrDev()
}@function
def example() -> dagger.PlattrDev:
return (
dag.plattr_dev()
)@func()
example(): PlattrDev {
return dag
.plattrDev()
}Types
PlattrDev 🔗
ping() 🔗
Health check — verify the module is operational.
Return Type
String ! Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
pingfunc (m *MyModule) Example(ctx context.Context) string {
return dag.
PlattrDev().
Ping(ctx)
}@function
async def example() -> str:
return await (
dag.plattr_dev()
.ping()
)@func()
async example(): Promise<string> {
return dag
.plattrDev()
.ping()
}detectFramework() 🔗
Detect the framework of a source directory.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
detect-framework --source DIR_PATHfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string {
return dag.
PlattrDev().
DetectFramework(ctx, source)
}@function
async def example(source: dagger.Directory) -> str:
return await (
dag.plattr_dev()
.detect_framework(source)
)@func()
async example(source: Directory): Promise<string> {
return dag
.plattrDev()
.detectFramework(source)
}dev() 🔗
Start a complete local development environment.
Reads plattr.yaml, starts infrastructure services (PostgreSQL, MinIO, PostgREST), and runs the framework-specific dev server with all services bound and env vars set.
Return Type
Service !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| port | Integer ! | 3000 | No description provided |
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
dev --source DIR_PATH --port integerfunc (m *MyModule) Example(source *dagger.Directory, port int) *dagger.Service {
return dag.
PlattrDev().
Dev(source, port)
}@function
def example(source: dagger.Directory, port: int) -> dagger.Service:
return (
dag.plattr_dev()
.dev(source, port)
)@func()
example(source: Directory, port: number): Service {
return dag
.plattrDev()
.dev(source, port)
}preview() 🔗
Start an isolated preview environment for a pull request.
Similar to dev() but every resource name includes the PR number, so multiple previews and the main dev environment can coexist without collision.
Usage: dagger call preview –source=. –pr-number=42 up –ports=3100:3100,5433:5432,9002:9000
Return Type
Service !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| prNumber | Integer ! | - | No description provided |
| port | Integer ! | 3100 | No description provided |
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
preview --source DIR_PATH --pr-number integer --port integerfunc (m *MyModule) Example(source *dagger.Directory, prNumber int, port int) *dagger.Service {
return dag.
PlattrDev().
Preview(source, prNumber, port)
}@function
def example(source: dagger.Directory, pr_number: int, port: int) -> dagger.Service:
return (
dag.plattr_dev()
.preview(source, pr_number, port)
)@func()
example(source: Directory, prNumber: number, port: number): Service {
return dag
.plattrDev()
.preview(source, prNumber, port)
}migrate() 🔗
Run database migrations.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| engine | String ! | "sql" | No description provided |
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
migrate --source DIR_PATH --engine stringfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory, engine string) string {
return dag.
PlattrDev().
Migrate(ctx, source, engine)
}@function
async def example(source: dagger.Directory, engine: str) -> str:
return await (
dag.plattr_dev()
.migrate(source, engine)
)@func()
async example(source: Directory, engine: string): Promise<string> {
return dag
.plattrDev()
.migrate(source, engine)
}dbShell() 🔗
Open an interactive psql shell connected to the app’s database.
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
db-shell --source DIR_PATHfunc (m *MyModule) Example(source *dagger.Directory) *dagger.Container {
return dag.
PlattrDev().
DbShell(source)
}@function
def example(source: dagger.Directory) -> dagger.Container:
return (
dag.plattr_dev()
.db_shell(source)
)@func()
example(source: Directory): Container {
return dag
.plattrDev()
.dbShell(source)
}seed() 🔗
Run a SQL seed file against the app’s database.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| seedFile | String ! | "seed.sql" | No description provided |
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
seed --source DIR_PATH --seed-file stringfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory, seedFile string) string {
return dag.
PlattrDev().
Seed(ctx, source, seedFile)
}@function
async def example(source: dagger.Directory, seed_file: str) -> str:
return await (
dag.plattr_dev()
.seed(source, seed_file)
)@func()
async example(source: Directory, seedFile: string): Promise<string> {
return dag
.plattrDev()
.seed(source, seedFile)
}build() 🔗
Build a production-optimized container image.
Return Type
Container !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| framework | String | - | No description provided |
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
build --source DIR_PATHfunc (m *MyModule) Example(source *dagger.Directory) *dagger.Container {
return dag.
PlattrDev().
Build(source)
}@function
def example(source: dagger.Directory) -> dagger.Container:
return (
dag.plattr_dev()
.build(source)
)@func()
example(source: Directory): Container {
return dag
.plattrDev()
.build(source)
}test() 🔗
Run the app’s test suite against real infrastructure.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
test --source DIR_PATHfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string {
return dag.
PlattrDev().
Test(ctx, source)
}@function
async def example(source: dagger.Directory) -> str:
return await (
dag.plattr_dev()
.test(source)
)@func()
async example(source: Directory): Promise<string> {
return dag
.plattrDev()
.test(source)
}buildAndPush() 🔗
Build the production image and push it to a container registry.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| appName | String ! | - | No description provided |
| environment | String ! | - | No description provided |
| registryUrl | String ! | - | No description provided |
Example
dagger -m github.com/kcearns/plattr/packages/dagger@2811420c0a16f1e228e2570c745d0367a23a8edd call \
build-and-push --source DIR_PATH --app-name string --environment string --registry-url stringfunc (m *MyModule) Example(ctx context.Context, source *dagger.Directory, appName string, environment string, registryUrl string) string {
return dag.
PlattrDev().
BuildAndPush(ctx, source, appName, environment, registryUrl)
}@function
async def example(source: dagger.Directory, app_name: str, environment: str, registry_url: str) -> str:
return await (
dag.plattr_dev()
.build_and_push(source, app_name, environment, registry_url)
)@func()
async example(source: Directory, appName: string, environment: string, registryUrl: string): Promise<string> {
return dag
.plattrDev()
.buildAndPush(source, appName, environment, registryUrl)
}