{"id":20135273,"url":"https://github.com/cybnity/domain-access-control","last_synced_at":"2025-08-22T22:21:40.449Z","repository":{"id":106805021,"uuid":"538888464","full_name":"cybnity/domain-access-control","owner":"cybnity","description":"All the features and services realized by the Access Control bounded context relative to the application domain, including specification library (e.g api), components implementation (e.g software implementation packages) and deployable systems (e.g operable component on infrastructure types).","archived":false,"fork":false,"pushed_at":"2025-05-15T14:39:43.000Z","size":688,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-15T15:47:13.923Z","etag":null,"topics":["access-control","cybersecurity","java","software"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cybnity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-20T08:39:02.000Z","updated_at":"2024-09-06T11:37:03.000Z","dependencies_parsed_at":"2024-03-13T14:28:53.406Z","dependency_job_id":"b988ce08-0f70-4f8c-baf6-6a0ded8f1b20","html_url":"https://github.com/cybnity/domain-access-control","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":"cybnity/domain-vulnerability-mgt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cybnity%2Fdomain-access-control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cybnity%2Fdomain-access-control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cybnity%2Fdomain-access-control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cybnity%2Fdomain-access-control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cybnity","download_url":"https://codeload.github.com/cybnity/domain-access-control/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cybnity%2Fdomain-access-control/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259043768,"owners_count":22797161,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["access-control","cybersecurity","java","software"],"created_at":"2024-11-13T21:14:20.207Z","updated_at":"2025-06-10T09:06:01.822Z","avatar_url":"https://github.com/cybnity.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## PURPOSE\nDiscover here the Access Control Management application domain project, that have mission to build and deliver testable CYBNITY domain software components and systems versions.\n\nThe CYBNITY Access Control domain technical documentation includes many types of support deliverables produced during the software development life cycle.\n\nYou can find informations relative to software maintenance like:\n- Design diagrams regarding software developed concepts and source codes\n- Support to software build process and packaging\n- Systems configuration and deployment procedures\n\n# FUNCTIONAL VIEW (Use Cases)\n## PURPOSE\n- Show the functionalities of the system(s) as perceived by the external actors\n- Exposes the requirements of the systems\n\n### Usage\nFormalizes software functional and/or technical analysis according to the functional and technical requirements.\n\nFeature specifications API versions (e.g interface versions) are delivered according to requirements and specification identified by MVF project line's prototyping results.\n\n### Artifacts\nThe managed source files are stored in the functional-view sub-folder like:\n- Static aspects (structural diagrams): use cases\n- Dynamic aspects (behavioral diagrams): interactions, statecharts, activities\n- Model sub-packages:\n  - Each context of the software (e.g Domain context) is described in a separate sub-package\n\n# DESIGN VIEW (Logical Components)\n## PURPOSE\n- Sub-capture how the functionality is designed inside the domain contexts\n- Logical view of systems and sub-systems\n\n### Usage\nFormalizes the specification of the software and sub-components produced during the solution analysis and technical design activities.\n\nFeature implementations versions are designed and delivered as implementation software which extends the Foundation Core project.\n\n### Artifacts\nThe managed source files are stored in the design-view sub-folder like:\n- Static aspects (structural diagrams): classes, objects\n- Dynamic aspects (behavioral diagrams): interactions, statecharts, activities, sequences\n\n# PROCESS VIEW (Executions)\n## PURPOSE\n- Show the concurrency of the system(s)\n- Encompasses the threads and processes that form the system's concurrency and synchronization mechanisms\n\n### Usage\nDescribes execution models and synchronization rules, identified during the technical design phase and implementation rules definition.\n\n### Artifacts\nThe managed source files are stored in the process-view sub-folder like:\n- Static aspects: equals to design view's diagrams, with focus on the active classes that represent theses threads and processes\n- Model sub-packages:\n  - Performance\n  - Scalability\n\n# IMPLEMENTATION VIEW (Packaged Components)\n## PURPOSE\n- Show the organization of the core components and files (e.g source code, setting files)\n- Packaging models and dependencies distribution\n- Addresses the configuration management of the system's releases\n\n### Usage\nFormalizes the maintenance documentation aligned with source codes developed, including specificities regarding technologies (e.g language requirements) and frameworks (e.g implementation templates, protocols) used for implementation of the software.\n\n### Artifacts\nThe managed source files are stored in the [implementation-view](docs/implementation-view) sub-folder like:\n- Static aspects (structural diagrams): components, packages\n- Dynamic aspects (behavioral diagrams): interactions, statecharts, activities\n- Model sub-packages:\n  - Implementation principles \u0026 models\n  - Configuration-management\n  - System-assembly\n\n#### Source Codes Structures\nImplementation components projects are structured and built according to standards:\n- Maven: Java components using a [standard Maven project structure](https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html)\n- NPM: JavaScript components\n- Docker: system containers and images templates are managed by each project (e.g via auto-generated Dockerfile by Maven process)\n- Helm: parameters and Kubernetes resources configuration using a [standard Helm structure](https://v2.helm.sh/docs/developing_charts/)\n\nThe implementation projects are supported by an Official TechStack version defining the authorized technologies used by this software project.\n\n## UI COMPONENTS\nThe source codes managed in theses sub-projects are providing capabilities to final user via web interfaces (e.g visual interfaces and/or backend API services) which can enhance the Foundation Core project's capabilities layer:\n- [User Interface API](/implementation-line/access-control/ac-ui/ac-ui-api/docs/README.md)\n\n## APPLICATION COMPONENTS\nThe source codes managed in theses sub-projects (Maven projects) are supporting the features (as micro-service components constituing the business capabilities provided by the application domain) provided by the bounded context:\n- [Adapter libraries](/implementation-line/access-control/ac-adapter)\n  - Adapter API libraries\n  - Adapter implementation components\n- [Adapter translator libraries](/implementation-line/access-control/ac-translator)\n  - UI translator library\n  - Keycloak translator library\n- [Domain model library](/implementation-line/access-control/ac-domain-model)\n- [Domain service libraries](/implementation-line/access-control/ac-service)\n  - Service API library\n  - Service implementation module\n- [System modules](/implementation-line/access-control/ac-system/docs)\n  - Gateway application module\n  - RTS computation unit\n\n```mermaid\n%%{\n  init: {\n    'theme': 'base',\n    'themeVariables': {\n        'background': '#ffffff',\n        'fontFamily': 'arial',\n        'fontSize': '13px',\n        'primaryColor': '#fff',\n        'primaryTextColor': '#0e2a43',\n        'primaryBorderColor': '#0e2a43',\n        'secondaryColor': '#fff',\n        'secondaryTextColor': '#fff',\n        'secondaryBorderColor': '#fff',\n        'tertiaryColor': '#fff',\n        'tertiaryTextColor': '#fff',\n        'tertiaryBorderColor': '#fff',\n        'edgeLabelBackground':'#fff',\n        'lineColor': '#0e2a43',\n        'titleColor': '#fff',\n        'textColor': '#fff',\n        'lineColor': '#0e2a43',\n        'nodeTextColor': '#fff',\n        'nodeBorder': '#0e2a43',\n        'noteTextColor': '#fff',\n        'noteBorderColor': '#fff'\n    },\n    'flowchart': { 'curve': 'monotoneX', 'htmlLabels': 'true', 'wrappingWidth': '400' }\n  }\n}%%\nflowchart LR\n  access_control_rts_computation_unit(\"_\u0026lt;\u0026lt;System\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**system**\u0026nbsp;\u003cbr\u003eartifactId: **process-module**\")\n  access_control_domain_gateway_server(\"_\u0026lt;\u0026lt;System\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**system**\u0026nbsp;\u003cbr\u003eartifactId: **domain-gateway-server**\")\n  access_backend_server(\"_\u0026lt;\u0026lt;UI system\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**ui.system**\u0026nbsp;\u003cbr\u003eartifactId: **backend-server**\")\n  access_frontend_server(\"_\u0026lt;\u0026lt;UI system\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**ui.system**\u0026nbsp;\u003cbr\u003eartifactId: **frontend-server**\")\n  access_control_adapter_keycloak_impl(\"_\u0026lt;\u0026lt;Adapter\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**adapters**\u0026nbsp;\u003cbr\u003eartifactId: **keycloak-impl**\")\n  access_control_adapter_admin_api(\"_\u0026lt;\u0026lt;Adapter API\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**adapters**\u0026nbsp;\u003cbr\u003eartifactId: **admin-api**\")\n  access_control_adapter_keycloak_admin_impl(\"_\u0026lt;\u0026lt;Adapter\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**adapters**\u0026nbsp;\u003cbr\u003eartifactId: **keycloak-admin-impl**\")\n  access_control_adapter_api(\"_\u0026lt;\u0026lt;Adapter API\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**adapters**\u0026nbsp;\u003cbr\u003eartifactId: **api**\")\n  access_control_domain_model(\"_\u0026lt;\u0026lt;Domain model\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.**access-control**\u0026nbsp;\u003cbr\u003eartifactId: **domain**\")\n  access_control_service_api(\"_\u0026lt;\u0026lt;Service API\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.**access-control**\u0026nbsp;\u003cbr\u003eartifactId: **service-api**\")\n  access_control_ui_translator(\"_\u0026lt;\u0026lt;Translator\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**translator**\u0026nbsp;\u003cbr\u003eartifactId: **ui**\")\n  access_control_ui_api(\"_\u0026lt;\u0026lt;UI API\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**ui**\u0026nbsp;\u003cbr\u003eartifactId: **api**\")\n  access_control_service_impl(\"_\u0026lt;\u0026lt;Service\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.**access-control**\u0026nbsp;\u003cbr\u003eartifactId: **service-impl**\")\n  access_control_keycloak_translator(\"_\u0026lt;\u0026lt;Translator\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.application.access-control.**translator**\u0026nbsp;\u003cbr\u003eartifactId: **keycloak**\")\n  fwk_support(\"_\u0026lt;\u0026lt;Framework\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.**framework**\u0026nbsp;\u003cbr\u003eartifactId: **support**\")\n  fwk_domain(\"_\u0026lt;\u0026lt;Framework\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.**framework**\u0026nbsp;\u003cbr\u003eartifactId: **domain**\")\n  vertx_common(\"_\u0026lt;\u0026lt;Framework\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.**framework**\u0026nbsp;\u003cbr\u003eartifactId: **vertx-common**\")\n  redis_store(\"_\u0026lt;\u0026lt;Feature\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.features.technical.**persistence**\u0026nbsp;\u003cbr\u003eartifactId: **redis-store**\")\n  janusgraph_repository(\"_\u0026lt;\u0026lt;Feature\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.features.technical.**persistence**\u0026nbsp;\u003cbr\u003eartifactId: **janusgraph-repository**\")\n  redis_impl(\"_\u0026lt;\u0026lt;Adapter\u0026gt;\u0026gt;_\u003cbr\u003egroupId: org.cybnity.infrastructure.integration.**uis.adapters**\u0026nbsp;\u003cbr\u003eartifactId: **redis-impl**\")\n\n  access_backend_server -.-\u003e access_control_ui_api \u0026 access_control_ui_translator\n  access_control_service_impl -.-\u003e access_control_adapter_admin_api\n  access_control_service_impl -.-\u003e access_control_service_api \u0026 access_control_adapter_api \u0026 access_control_ui_api \u0026 access_control_domain_model\n  access_control_adapter_keycloak_admin_impl -.-\u003e access_control_adapter_admin_api\n  access_control_adapter_keycloak_admin_impl -.-\u003e access_control_adapter_keycloak_impl\n  access_control_adapter_keycloak_impl -.-\u003e access_control_adapter_api\n  access_control_service_api -.-\u003e access_control_ui_translator\n  access_control_domain_gateway_server -.-\u003e access_control_ui_translator\n  access_control_rts_computation_unit -.-\u003e access_control_adapter_keycloak_admin_impl \u0026 access_control_service_impl\n  access_control_adapter_api -.-\u003e access_control_ui_translator\n  access_control_adapter_keycloak_impl -.-\u003e access_control_keycloak_translator\n\n  classDef module fill:#0e2a43, color:#fff\n  classDef lib fill:#fff, stroke:##0e2a43, color:##0e2a43\n  classDef external fill:#fff, stroke:#e5302a, color:#e5302a, stroke-dasharray: 5 5\n  class access_control_ui_api,access_control_ui_translator,access_control_keycloak_translator,access_control_service_api,access_control_service_impl,access_control_domain_model,access_control_adapter_admin_api,access_control_adapter_api,access_control_adapter_keycloak_admin_impl,access_control_adapter_keycloak_impl lib;\n  class access_backend_server,access_frontend_server,access_control_rts_computation_unit,access_control_domain_gateway_server module;\n  class fwk_domain,redis_store,janusgraph_repository,redis_impl,vertx_common,fwk_support external;\n\n```\n\n## INFRASTRUCTURE COMPONENTS\nThe source code managed in the [Adapter translator libraries](/implementation-line/access-control/ac-adapter) area are about the infrastructure components supporting the integration capabilities:\n- [Keycloak Admin Rest API adapter](/implementation-line/access-control/ac-adapter/ac-adapter-keycloak-admin-impl) to Keycloak server\n- [Keycloak SSO API adapter](/implementation-line/access-control/ac-adapter/ac-adapter-keycloak-impl) to Keycloak SSO server\n\n# DEPLOYMENT VIEW (Systems \u0026 Applications)\n## PURPOSE\n- Show the deployment of the systems in terms of physical architecture;\n- Encompasses the node that form the system's hardware topology (e.g type of infrastructure components, network, virtual environments) on which the system executes (e.g resources requirements, runtime platform);\n- Addresses the distribution (e.g flow opening), delivery (e.g procedures to respect), and installation (e.g resource prerequisites) of the parts that make up the physical system.\n\n### Usage\nDescribes the environment(s), infrastructure and operating conditions required to install, activate and operate the systems safely.\n\n### Artifacts\nThe managed source files are stored in the deployment-view sub-folder like:\n- Static aspects (structural diagrams): components, deployment\n- Model sub-packages:\n  - Installation\n    - Systems deployment\n  - Delivery\n  - System-distribution\n  - System-topology\n\n## DEPLOYABLE \u0026 RUNNABLE MODULES\nSeveral systems are built as executable modules, containerized (Docker images) and that are ready for deployment via provisioning management solution (e.g Helm charts):\n- [Gateway Server](/implementation-line/access-control/ac-system/ac-domain-gateway-server)\n- [Process Server](/implementation-line/access-control/ac-system/ac-rts-computation-unit)\n- [Backend Server](/implementation-line/access-control/ac-ui/ac-ui-system/ac-backend-server)\n- [Frontend Server](/implementation-line/access-control/ac-ui/ac-ui-system/ac-frontend-server)\n\nSeveral servers are developed as executable domain components, which are containerized and ready for deployment via provisioning management solution:\n- Domain Gateway Server\n  - For example, to start auto-generated docker image (by Maven) into a Kubernetes context, execute command line `kubectl run cybnity-ac-domain-gateway --image=cybnity/access-control-domain-gateway --image-pull-policy=Never`\n- Real-Time Stream Computation Unit\n  - For example, to start docker image as Pod in Kubernetes context, execute command line `kubectl run cybnity-ac-domain-rts-process --image=cybnity/access-control-process-module --image-pull-policy=Never`\n\n### Reusable Provisioning System Projects\nPerimeter: some infrastructure third-party software (e.g Keycloak, Postgresql, Redis, JanusGraph, Cassandra) are available on the market as template of provisioning helping to quickly customize the runtime (provisioning of pre-configured Docker image) into a Kubernetes platform. Some infrastructure systems are reused by CYBNITY as infrastructure systems with customization of the prepared templates of their images helmization.\n\nProject type: Helm implementation structures.\n\nDescription: several generic infrastructure projects required by the CYBNITY implementation architecture are managed __into the CYBNITY helm charts repository__ supporting the provisioning of servers over Helm chart implementation.\n\nThe infrastructure servers reused by the Access Control domain are:\n- SSO service: Keycloak server\n- UIS service: Redis server\n- Knowledge repository service: JanusGraph server with Cassandra\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcybnity%2Fdomain-access-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcybnity%2Fdomain-access-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcybnity%2Fdomain-access-control/lists"}