kazana-entities
v3.0.0
Published
Central place to manage kazana entities
Downloads
3
Readme
kazana-entities
Rest API
GET /api/entities
Gets api info (version of kazana-entities) This route is useful sonce it doesn't require auth so you can use it to find the other routes when running this as a plugin. (Kazana namespaces routes from plugins)
GET /api/entities/{type}
gets all entities of a certain type
Optional Query Params: limit and skip can be passed in to do pagination
GET /api/entities/{type}/id
gets a certain entity
POST /api/entities/{type}
Create a new entity, the payload need to include 'id' and 'name'
PUT /api/entities/{type}/id
Update an entity
DELETE /api/entities/{type}/id
Deletes an entity
Per default, all the routes require authorization
Using in your kazana app
It's recommended that you create a new app, that uses kazana-entities as a dependency. Then you apply configuration and bootstrap data from the repository of your app. A short example:
Route prefixes when running as a plugin
When kazana-entities is running as a plugin, the routes will be prefixed with /kazana/entities
. For example will the first route above be /kazana/entities/api/entities
.
// myproject-entities/index.js
var path = require('path')
var entitiesApp = require('kazana-entities')
entitiesApp.name = 'myproject-entities'
entitiesApp.version = require('./package.json').version
entitiesApp.bootstrap = path.resolve(__dirname, 'bootstrap')
module.exports = entitiesApp
Bootstrapping data
Bootstrap the database via kazana-bootstrap
// myproject-entities directory
bootstrap/
|
-myproject-entities/ (name must match .kazanarc, see below)
-entitype:id.json (one json file / bootstrap doc)
See kazana-bootstrap for more bootstrap options (users, security, etc)
Configuration
Configure the database name through kazana-config
// myproject-entities/.kazanarc
[db]
entities=myproject-entities
List of Entities
The only required property for all entities is "name"
. An optional
"aliases"
array allows set alternative names by with an entity can
be found as well.
Use Cases
- Select boxes for values, e.g. in a registration form, or inindices
- Validation of data reports
- Search / Filtering of data in the bottleneck analysis dashboard