Ziam is project for me to learn ZIO and FP in a selected domain. This may become a real project, probably not.
- work in progress
Ziam's domain is fine grained authorization which you might find usefull in following use cases for example:
- multi-tenant SaaS platform, where tenant's can collaborate and share data
- purpose based personal data handling
- Basic CRUD for users, roles and permissions
- Support for multiple data sources
- CLI for provisioning new databases
- Scala 3
- ZIO 2, ZIO Http, Quill, ZIO Config, ZIO Logging, ZIO Prelude, ZIO JSON, ZIO Cli
- SQLite
- HTMX & Tailwind CSS frontend
- Mini web framework for htmx apps, including HTML encoding data and forms with Scala 3 macros
- Install Scala 3.3+ and cli tools with coursier
Application needs one or more databases to run. You can create a new database with the CLI:
./ziam.sh create --database new.db --user admin --password admin
Once you have one or more databases created, run the application:
sbt run
Application will start on http://localhost:8080/<dbname-without-extension>
, i.e http://localhost:8080/new
Running tests will create unittest.db
database and run tests against it.
sbt test