What's new¶
Features in 0.1.0, the first Maven Central release. Migration notes below compare with the older JitPack tag v1.0.1.
Upgrading from v1.0.1
This release renames packages and changes a few defaults. Read Breaking changes before you upgrade.
Highlights¶
-
A redesigned console
Rebuilt with React 19 and shadcn/ui. Every page has a real URL, there's a data-focused dashboard and record pages, and light, dark and system themes. Tour the console
-
Filters & saved views
Relation filters, number and date ranges, removable filter chips, and named views saved per browser. Filtering
-
Editing everywhere
Edit-in-place table cells, inline child rows saved with their parent, many-to-many multi-selects, and rich-text and code editors. Forms
-
File & image uploads
@AdminUploadwith Amazon S3, S3-compatible services, ImageKit or local storage, live progress, and content verification. File uploads -
Field-level validation
Bean Validation runs before every save. Errors come back as
422with afieldErrorsmap and appear next to each field. API errors -
Branding & custom path
Set a
logo-urlandprimary-color, and serve the console from any path, such as/backoffice, without rebuilding the UI. Branding
Breaking changes¶
| Change | What to do |
|---|---|
Package rename. io.github.jpaadmin.* is now com.substringtechnologies.jpaadmin.*. |
Update imports, for example import com.substringtechnologies.jpaadmin.annotations.*;. |
Maven Central coordinates use com.substringtechnologies and version 0.1.0. |
Replace the older JitPack dependency. See Installation; the two distribution channels use different version sequences. |
Text filters match substrings. ?name=pro now matches "MacBook Pro" (case-insensitive) instead of only the exact value. |
Use the filter as a "contains" search. Enums, booleans, numbers and relations still match exactly. |
spring.jpa.admin.path is validated. It must start with /, have no trailing slash, and not be /. |
Use values like /admin or /internal/admin. Startup fails with a clear message otherwise. |
Primary keys are never changed by updates. An id in a PUT body is ignored. |
Create a new record if a different ID is needed. |
| Required enum fields start empty on create forms instead of preselecting the first value. | Users choose a value explicitly; validation asks for it. |
| Related records are checked on save. A relation that points to a missing record now fails validation instead of failing later in the database. | No action; you get a clearer error. |
New API¶
GET {path}/api/statsreturns record counts per entity.GET {path}/api/stats/timeline?days=30returns records created per day.- Filters:
field__gte/field__lterange bounds, filtering a relation by its ID, and substring text search. See Listing. 422 Unprocessable Entityresponses includefieldErrors;409 Conflictis returned for database constraint violations.- Inline child rows and many-to-many collections can be sent in create and update bodies. See Write payloads.
- File uploads:
POST /uploads/prepare,PUT /uploads/local/{token}andPOST /uploads/complete. See Uploads. - The session response now includes
logoUrl,primaryColorandexportEnabled.
New configuration¶
| Property | Purpose |
|---|---|
spring.jpa.admin.primary-color |
Brand accent color (#rrggbb). |
spring.jpa.admin.logo-url |
Now displayed in the sidebar and on the login page. |
spring.jpa.admin.export-enabled |
Now controls the CSV Export button. |
spring.jpa.admin.path |
Now honored by the UI, the API and the security rules. |
spring.jpa.admin.storage.<name>.* |
File storages for @AdminUpload. |
spring.jpa.admin.upload.signing-key |
Shared secret for upload tickets across instances. |
See the full property reference.
New annotation¶
@AdminUpload(storage, folder, accept, maxSize) turns a String field into a file upload. See File uploads.