* one concurrent task * disable spooler * fix: improve concurrency in spooler * fix: dont block lock * fix: break if lock failed * fix: check if handler is working * fix: worker id * fix: test * fix: use limit for spoolers configured in startup.yaml * fix test * fix: factory * fix(key): only reduce if not expired * fix(searchQueryFactory): check for string-slice in aggregateID * fix(migrations): combine migrations * fix: allow saving multiple objects in one request * fix(eventstore): logging * fix(eventstore): rethink insert i locks table * fix: ignore failed tests for the moment * fix: tuubel * fix: for tests in io * fix: ignore tests for io * fix: rename concurrent tasks to workers * fix: incomment tests and remove some tests * fix: refert changes for io * refactor(eventstore): combine types of sql in one file * refactor(eventstore): logs, TODO's, tests * fix(eventstore): sql package * test(eventstore): add tests for search query factory * chore: logs * fix(spooler): optimize lock query chore(migrations): rename locks.object_type to view_name chore(migrations): refactor migrations * test: incomment tests * fix: rename PrepareSaves to PrepareBulkSave * chore: go dependencies * fix(migrations): add id in events table * refactor(lock): less magic numbers * fix(migrations): event_sequence as hash shared index Co-authored-by: Livio Amstutz <livio.a@gmail.com>
ZITADEL
This project is in a alpha state. The application will continue breaking until version 1.0.0 is released
What Is It
ZITADEL
is a Cloud Native Identity and Access Management solution. All server side components are written in Go
and the management interface, called Console
, is written in Angular
.
We optimized ZITADEL
for the usage as service provider IAM
. By service provider
we think of companies who build services for e.g SaaS cases. Often these companies would like to use an IAM where they can register their application and grant other people or companies the right to self manage a set of roles within that application.
How Does It Work
We built ZITADEL
around the idea that the IAM should be easy to deploy and scale. That's why we tried to reduce external systems as much as possible.
For example, ZITADEL
is eventsourced but it does not rely on a pub/sub system to function. Instead we built all the functionality right into one binary.
ZITADEL
only needs Kubernetes
for orchestration and CockroachDB
as storage.
Why Another IAM
In the past we already built a closed sourced IAM and tested multiple others. With most of them we had some issues, either technology, feature, pricing or transparency related in nature. For example we find the idea that security related features like MFA
should not be hidden behind a paywall or a feature price.
One feature that we often missed, was a solid audit trail
of all IAM resources. Most systems we saw so far either rely on simple log files or use a short retention for this.
How To Use It
Use our free tier
Stay tuned, we will publish how you can register an organisation in our cloud offering zitadel.ch
soon.
Yes we have a free tier!
Run your own IAM
Stay tuned, we will soon publish a guide how you can deploy a hyperconverged
system with our automation tooling called ORBOS
.
With ORBOS you will be able to run ZITADEL
on GCE
or StaticProvider
within 20 minutes. To achieve this, ORBOS will bootstrap and maintain a Kubernetes
cluster, essential platform components (logging, metrics, ingress, ...), a secure CockroachDB
cluster and ZITADEL
itself.
The combination of the tools ORBOS and ZITADEL
is what makes the operation easy and scalable.
See our progress here
Give me some docs
This is work in progess but will change soon.
How To Contribute
TBA
Security
See the policy here
License
See the exact licensing terms here
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.