Skip to content
Shamar

Packages

Shamar is not one npm package. The panel is a small set of packages that plug into each other. You install the ones your app needs. You do not install a database adapter you will not use, and you do not install authorization or a public API until those features are real work.

This section explains each package in plain terms: the problem it solves, where it sits, and the minimum configuration that turns it on. The API details live on each page.

Every panel is these three:

Package You write against it? What it is
@shamar/core Yes The resource, form, and table language
@shamar/adonis Yes, as the host Routes, Edge screens, the provider
One adapter Rarely, by hand Talks to the database

The adapter is a choice:

node ace configure @shamar/adonis asks which one you want and sets orm in config/shamar.ts. @shamar/adonis already depends on both adapters, so choosing one does not mean a second install of Shamar itself. You still install the database library your adapter needs (@adonisjs/lucid or mongoose) and you still own the connection: migrations for SQL, mongoose.connect for MongoDB.

These are useful and independent. Leave them out until you want the feature.

Package When you want it
@shamar/cherubim Staff must have different permissions, or machines call the API with a key
@shamar/rest The same resources should be available as JSON, with an OpenAPI page

@shamar/wire is not one of those. The Adonis host depends on it, and it is the second section in these docs because the panel is built on it. It is also usable on a page that never mounts a panel. New versions are published by GitHub Actions (publish.yml), which npm trusts as that package’s publisher.

Browser → @shamar/adonis (routes, HTML)
↓
@shamar/core (what the screen means)
↓
@shamar/lucid or @shamar/mongoose
↓
SQL database or MongoDB

Cherubim, when present, sits beside the host and answers “is this user allowed?” before the adapter runs. REST, when present, exposes a second door — JSON instead of HTML — onto the same resources.

Start with Core if you want the vocabulary, Adonis if you want the host, then the database page that matches your app. The playground uses Mongoose, so MongoDB is the path that matches the live demo.