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@f853ad88683d72d3763c594e95d434d7f39bfbd3Entrypoint
Return Type
PlattrDev Example
dagger -m github.com/kcearns/plattr/packages/dagger@f853ad88683d72d3763c594e95d434d7f39bfbd3 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@f853ad88683d72d3763c594e95d434d7f39bfbd3 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@f853ad88683d72d3763c594e95d434d7f39bfbd3 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, or infrastructure only.
Reads plattr.yaml, starts infrastructure services (PostgreSQL, MinIO, PostgREST), and runs the framework-specific dev server with all services bound and env vars set.
When infraOnly is true, only the backing services are started (no app container). The app is expected to run natively on the host.
Usage (infra only): dagger call dev –source=. –infra-only up –ports=5432:5432,9000:9000,9001:9001,3001:3001,8080:8080
Return Type
Service !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | No description provided |
| port | Integer ! | 3000 | No description provided |
| infraOnly | Boolean ! | false | No description provided |
Example
dagger -m github.com/kcearns/plattr/packages/dagger@f853ad88683d72d3763c594e95d434d7f39bfbd3 call \
dev --source DIR_PATH --port integer --infra-only booleanfunc (m *MyModule) Example(source *dagger.Directory, port int, infraOnly bool) *dagger.Service {
return dag.
PlattrDev().
Dev(source, port, infraOnly)
}@function
def example(source: dagger.Directory, port: int, infra_only: bool) -> dagger.Service:
return (
dag.plattr_dev()
.dev(source, port, infra_only)
)@func()
example(source: Directory, port: number, infraOnly: boolean): Service {
return dag
.plattrDev()
.dev(source, port, infraOnly)
}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@f853ad88683d72d3763c594e95d434d7f39bfbd3 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@f853ad88683d72d3763c594e95d434d7f39bfbd3 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@f853ad88683d72d3763c594e95d434d7f39bfbd3 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@f853ad88683d72d3763c594e95d434d7f39bfbd3 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@f853ad88683d72d3763c594e95d434d7f39bfbd3 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@f853ad88683d72d3763c594e95d434d7f39bfbd3 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@f853ad88683d72d3763c594e95d434d7f39bfbd3 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)
}