|

Dashboard customization

Change the Openship operator interface without moving routing logic into route files.

Openship's dashboard lives in the same repository as its Keystone and routing source. Custom work should keep App Router pages thin and place shop, channel, match, order and API-key behavior in feature slices and domain operations.

Keep these boundaries

  • route pages parse navigation and delegate;
  • authenticated screens load only the user's scoped records;
  • provider credentials stay in server-side adapter boundaries;
  • order placement, cancellation and tracking transitions use named domain operations;
  • UI controls do not call arbitrary provider URLs supplied by the browser;
  • loading, empty, permission, partial-failure and retry states stay visible.

A separate dashboard can be built against GraphQL, but it does not remove the need for session/API-key scopes, tenant filters, CSRF/origin policy and narrow mutations. Use the generated API contract from the same source revision.

On this page