Key definition and best practices

The key format handled by Izanami is namespaces separated by a :.

The recommended format is :

  • app namespace : env namespace : the rest of the key

For example you could have keys defined like this :

  • myapp:dev:my:key
  • myapp:preprod:my:key
  • myapp:prod:my:key

This king of key naming bring several advantages.

Handling user authorisations

This kind of format for keys allow you to handle authorisations for different kind of client applications.

When you create a user, you can define “authorized patterns” ( more details here ).

You define a set of users with pattern myapp:* that will only see keys starting with myapp:, define a set of users with pattern myapp2:* that will only see keys starting with myapp2: and so on.

The same rules are possible for api keys.

Filtering keys by pattern on the client side

When you query izanami, you can use pattern in order to filter only the keys you need in your application. The form of the key can help you to get only the data you need.

You can for example define keys like

  • myapp:prod:public:my:key1
  • myapp:prod:public:my:key2
  • myapp:prod:private:my:key3

And use the pattern myapp:prod:public:* for the keys exposed to the UI.

This kind of pattern are mandatory if you use the node or jvm clients.

The source code for this page can be found here.