Claude Code Skills
Ready-made Claude Code skills that wire jSentinel into your application from a single prompt — services, login, role-aware shell and admin views, parameterised on your package and types.
There are ten skills in three families — Vaadin Flow, REST and Standalone — each with a base skill plus optional persistence and hardening layers, and one Vaadin↔REST hybrid. They target the V00.73+ fluent surface and are validated against the reference demo modules in the library reactor.
Download — all jSentinel skills · ~144 KB · for jSentinel 00.73.00+
sha256: c92eb69bf72d92179119c573b3a7ff964e538fcf86729840f64ec4d0fd84f401
The three layers
Within each family the skills stack on top of each other — run the base first, then add layers as you go to production:
| Layer | What it does | Stores | First admin |
|---|---|---|---|
| Base | Full security stack wired and compiling | in-memory | seeded admin/admin + user/user (plaintext in source) |
| + Persistence | Swaps in Eclipse-Store stores; users/audit survive restart | durable | token-based first-admin bootstrap (removes the plaintext seed) |
| + Hardening | Argon2id hashing, optional HIBP breach check, role-revocation drift detection | — | — |
Start with the base for a working app in minutes; layer persistence and hardening before any multi-user deployment.
Vaadin Flow
| Skill | Role | What it does |
|---|---|---|
jsentinel-vaadin | base | Full Vaadin stack: VaadinSecurity.bootstrap(), @JSentinelAutoService auth services, seeded users, LoginView, an AppLayout MainLayout with public + private routes, and admin views for audit / sessions / roles. |
jsentinel-vaadin-persistence | + persistence | Replaces the in-memory stores with Eclipse-Store and the plaintext seed with the token-based first-admin flow (SetupView). |
jsentinel-vaadin-hardening | + hardening | Argon2id hashing, optional HIBP check, and JSentinelVersion drift detection — revoke a role and the next navigation sends the user back to login. |
jsentinel-vaadin-rest-client | hybrid | Points an existing jsentinel-vaadin frontend at a jSentinel-secured REST backend — auth/roles delegated over HTTP, no local user store. |
REST (JDK HttpServer)
| Skill | Role | What it does |
|---|---|---|
jsentinel-rest | base | RestSecurity.bootstrap(), auth services, in-memory TokenStore for Bearer tokens, and four endpoint groups (auth, audit, sessions, users) with problem+JSON errors. |
jsentinel-rest-persistence | + persistence | Eclipse-Store stores + a POST /api/setup token-based first-admin flow; locks the API to setup until bootstrapped. |
jsentinel-rest-hardening | + hardening | Argon2id, optional HIBP, and a RestJSentinelVersionFilter so a revoked role makes the existing token start returning 401. |
Standalone (CLI / desktop / plain Java)
| Skill | Role | What it does |
|---|---|---|
jsentinel-standalone | base | StandaloneSecurity.bootstrap(), auth services, and runtime enforcement via SecuredProxy.wrap(…) (interface) or the @Secured annotation processor (concrete class), with an interactive CLI loop. |
jsentinel-standalone-persistence | + persistence | Eclipse-Store stores + a setup command for the token-based first-admin bootstrap. |
jsentinel-standalone-hardening | + hardening | Argon2id, optional HIBP, and best-effort drift detection for the session. |
Install
Unzip into your Claude Code skills directory — the archive contains all ten skill folders:
unzip jsentinel-skills.zip -d ~/.claude/skills/
# → ~/.claude/skills/jsentinel-vaadin/SKILL.md, …Claude Code auto-discovers them on the next session. No registration step.
(Prefer just one? Copy a single jsentinel-* folder instead.)
Use a skill
In a Claude Code session inside your project, just ask — for example:
Integrate jSentinel into my Vaadin app (package
com.acme.bookstore).
The skill then, fully automatically:
- Extracts the slots it needs (target module, base package, subject
type, credentials, bootstrap profile) — inferred from your existing
@Routeclasses andpom.xml. - Echoes them back once for confirmation (the single checkpoint).
- Renders every template, patches the
pom.xml, registers theMETA-INF/servicesentries, and verifies withmvn compile.
Then layer up by asking for the next step — “add persistence” or “harden it” — and the matching layer skill takes over from your current state.
admin/admin and user/user as
plaintext constants (hashed on store) — fine for a first integration, a
hard “do not ship” for production. Run the persistence layer to replace
the seed with the token-based first-admin bootstrap, and the hardening
layer for Argon2id + breach checks, before any multi-user deployment.Need a hand wiring it in? Talk to us about a guided integration or security review.