# DSL: AshCubDB.DataLayer A CubDB data layer for Ash. ## DSL Documentation ### Index * cubdb ### Docs ## cubdb CubDB data layer configuration. Examples: ``` cubdb do directory "/opt/storage/my_awesome_resource" auto_compact? true auto_file_sync? true name :my_awesome_resource end ``` --- * `:directory` - The directory within which to store the CubDB data. If none is supplied, then one will be automatically generated in the `priv` directory of the parent OTP application. * `:otp_app` (`t:atom/0`) - The OTP application in whose `priv` directory data should be stored. Only used if `directory` is not supplied. When not provided `Application.get_application/1` will be called for the resource. * `:auto_compact?` (`t:boolean/0`) - Whether or not to automatically compact the CubDB database. See [the CubDB documentation](https://hexdocs.pm/cubdb/faq.html#what-is-compaction) for more information. The default value is `true`. * `:auto_file_sync?` (`t:boolean/0`) - Whether or not to automatically flush the buffer to disk on write. See [the CubDB documentation](https://hexdocs.pm/cubdb/faq.html#what-does-file-sync-mean) The default value is `true`. * `:name` (`t:atom/0`) - The name of the CubDB database. By default this is the name of the resource module, however in some (rare) circumstances you may wish to specifically name the database. ## cubdb CubDB data layer configuration. ### Examples ``` cubdb do directory "/opt/storage/my_awesome_resource" auto_compact? true auto_file_sync? true name :my_awesome_resource end ``` ### Options | Name | Type | Default | Docs | | --- | --- | --- | --- | | `directory` | `nil \| String.t` | | The directory within which to store the CubDB data. If none is supplied, then one will be automatically generated in the `priv` directory of the parent OTP application. | | `otp_app` | `atom` | | The OTP application in whose `priv` directory data should be stored. Only used if `directory` is not supplied. When not provided `Application.get_application/1` will be called for the resource. | | `auto_compact?` | `boolean` | `true` | Whether or not to automatically compact the CubDB database. See [the CubDB documentation](https://hexdocs.pm/cubdb/faq.html#what-is-compaction) for more information. | | `auto_file_sync?` | `boolean` | `true` | Whether or not to automatically flush the buffer to disk on write. See [the CubDB documentation](https://hexdocs.pm/cubdb/faq.html#what-does-file-sync-mean) | | `name` | `atom` | | The name of the CubDB database. By default this is the name of the resource module, however in some (rare) circumstances you may wish to specifically name the database. |