Skip to content

Repository files navigation

Carbonio User Management

User Management service for Zextras Carbonio

Contributors Activity License Project Twitter

Dependencies 🔗

The following dependencies are required to run the service correctly but they are not installed by the package. They must be installed if Mandatory otherwise user discretion is advised.

Name Mandatory/Optional
carbonio-mailbox Mandatory

How to install 🏁

Install carbonio-user-management via apt:

sudo apt install carbonio-user-management

or via yum:

sudo yum install carbonio-user-management

After the installation you must run pending-setups in order to register the service in service-discover.

How to build ⚙

Build using maven:

mvn install

The uber-jar will be saved inside the app/target folder.

Run tests

Unit tests:

mvn verify -Dskip.unit.tests=false

Integration tests (requires Docker):

mvn verify -Dskip.integration.tests=false

How to run 🚀

With the generated uber-jar:

java -Djava.net.preferIPv4Stack=true -jar app/target/carbonio-user-management-app-*-runner.jar

Dev mode

Starts the full Docker stack (mailbox, consul, postgres) and the app with hot-reload:

mvn -pl app quarkus:dev

Development 🛠

This repo uses the pre-commit framework (.pre-commit-config.yaml). Install it once per clone:

pip install --user pre-commit
pre-commit install --hook-type pre-commit --hook-type commit-msg

Besides linting/formatting, pre-commit locally regenerates the files CI previously generated and bot-committed (Jenkins now only verifies them):

  • THIRDPARTIES — regenerated via a vendored copy of jenkins-lib-common's license-maven-plugin invocation/template (.ci/thirdparties/).
  • package/PKGBUILD sha256sums — verified/autofixed via a vendored copy of jenkins-lib-common's checksum-verify.sh (.ci/checksum-verify.sh); SKIP entries (build artifacts, or sources whose content embeds pkgver) are always preserved.

If a hook regenerates a file, pre-commit will fail that commit (by design — it does not auto-stage changes for you). Review the diff, git add the regenerated file(s), and re-run git commit.

Note: unlike some sibling services, this one exposes a real JAX-RS REST surface (/internal/users/*, via UserResource / @Path) plus health endpoints (/q/health/*, from quarkus-smallrye-health). Its app/docs/openapi.json, app/docs/openapi.yaml and app/docs/configs.md are all actively regenerated by mvn package (quarkus-smallrye-openapi + the config-doc extension) and are covered like any other generated artifact — byte-identical check via the pre-commit hook / CI verification, not a frozen historical artifact.

License 📚

User Management service for Zextras Carbonio.

Released under the AGPL-3.0-only license as specified here: COPYING.

Copyright (C) 2022 Zextras https://www.zextras.com

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

See COPYING file for the project license details

See THIRDPARTIES file for other licenses details

Copyright notice

All non-software material (such as, for example, names, images, logos, sounds) is owned by Zextras s.r.l. and is licensed under CC-BY-NC-SA.

Where not specified, all source files owned by Zextras s.r.l. are licensed under AGPL-3.0-only

About

User Management service for Zextras Carbonio

Topics

Resources

Stars

4 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages