Skip to content

Native Development

Native mode runs CEDAR directly from the checked-out source and locally built artifacts. It gives backend developers a short build-and-restart loop and lets frontend developers use the normal development servers.

Complete the Developer Install before using this mode. It provides the host tools and services that a native deployment expects.

Start CEDAR

Select native mode, build the source, and start the complete system:

cedarcli mode native --profile develop
cedarcli build java
cedarcli build frontends
cedarcli native start all

The profile is required when selecting native mode. Use develop on a workstation and server on a staging or production host. The choice controls the frontend target, TLS verification policy, and server-secret validation for every later native child process; selecting the mode itself starts nothing. cedarcli mode native without --profile develop|server fails without changing mode.

Check that the applications and their supporting services are ready:

cedarcli native status

The grouped status table is the authoritative native view. For microservices and frontends it shows the managed PID, application port and listener state, health, binary freshness, and cumulative log error count. Infrastructure rows show their configured ports and availability in the same table. A healthy service whose Binary value is STALE is still running an older JAR; restart it before trusting a smoke test, and expect cedarcli test e2e to refuse to run until you do. A PID prefixed with ~ is a verified but unmanaged CEDAR process that restart can adopt, while ! marks a foreign listener that native control will not touch.

For scripts and CI checks, cedarcli native health provides a simple success or failure result for the managed application tier. During an interactive startup, cedarcli native watch keeps the lower-level process view current.

Work on One Part

You rarely need to restart the complete system after every edit. Native start and stop commands accept broad targets:

Target Scope
infra Infrastructure services
microservices All Java microservices
backends Infrastructure and microservices
frontends All frontend development servers
keycloak or kk Keycloak only
all The complete native system

The singular forms operate on one frontend or microservice:

cedarcli native start frontend workspace
cedarcli native start microservice resource

After changing one backend repository, the normal loop is:

cd "$CEDAR_HOME/cedar-resource-server"
cedarcli build this
cedarcli native restart resource
cedarcli native logs resource

Frontend development servers usually rebuild source changes automatically. Restart one when its dependencies or process configuration have changed:

cedarcli native restart ui-workspace

Stop CEDAR

Stop a group with the same target used to start it, or stop everything:

cedarcli native stop frontends
cedarcli native stop all

Leave native mode selected during ordinary stop and restart cycles. Clear it only when moving to a different deployment mode.