{"id":17451283,"url":"https://github.com/gautric/kyc-dmn","last_synced_at":"2025-07-29T21:46:36.292Z","repository":{"id":40670188,"uuid":"271382928","full_name":"gautric/KYC-DMN","owner":"gautric","description":"A KYC Implemented with DMN std, based Kogito and Reactjs/PatternFly","archived":false,"fork":false,"pushed_at":"2024-06-29T20:02:29.000Z","size":2088,"stargazers_count":2,"open_issues_count":11,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T03:41:43.835Z","etag":null,"topics":["dmn","java","kogito","native","quarkus"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gautric.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-10T20:51:41.000Z","updated_at":"2024-06-29T20:02:32.000Z","dependencies_parsed_at":"2024-06-29T21:21:10.088Z","dependency_job_id":"68380bb0-b62c-47f3-a5f3-757d3686a74a","html_url":"https://github.com/gautric/KYC-DMN","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gautric%2FKYC-DMN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gautric%2FKYC-DMN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gautric%2FKYC-DMN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gautric%2FKYC-DMN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gautric","download_url":"https://codeload.github.com/gautric/KYC-DMN/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243878486,"owners_count":20362433,"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":["dmn","java","kogito","native","quarkus"],"created_at":"2024-10-17T22:49:49.846Z","updated_at":"2025-03-17T20:30:45.575Z","avatar_url":"https://github.com/gautric.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KYC DMN engine\n\n## KYC Engine runtime \n\n### DMN Design\n\n[KYC DMN model](https://sandbox.kie.org/?file=https://github.com/gautric/KYC-DMN/blob/master/engine/src/main/resources/KYC.dmn#/f5f3272a-f629-4f44-9d6c-f41a077e5d41/file/KYC.dmn)\n\n### KYC Engine Compilation \u0026 Execution\n\n```\ncd engine\nmvn compile quarkus:dev\n```\n\n## KYC Web Application Compilation \u0026 Execution\n\n```\ncd webapp\nnpm run start:dev\n```\n\n\n\n## Test KYC Kogito API\n\n\n    curl 'http://localhost:8080/KYC/dmnresult' -X POST  -H 'Accept: application/json'  -H 'Content-Type: application/json'   --data-raw '{\"PEP\":true,\"Amount\":1000,\"Fiscal Residency\":\"FR\"}' | jq\n\n```\n{\n  \"namespace\": \"urn://kyc.g.a.net/api/2022\",\n  \"modelName\": \"KYC\",\n  \"dmnContext\": {\n    \"Amount Rule\": \"LOW\",\n    \"Level to Int\": \"function Level to Int( Level )\",\n    \"Max Level\": \"function Max Level( list of Level )\",\n    \"KYC\": {\n      \"Score\": \"HIGH\",\n      \"Level\": 75\n    },\n    \"Fiscal Residency Rule\": \"LOW\",\n    \"Amount\": 1000,\n    \"Int to Level\": \"function Int to Level( Int )\",\n    \"PEP Rule\": \"HIGH\",\n    \"PEP\": true,\n    \"Fiscal Residency\": \"FR\",\n    \"Level to Score\": \"function Level to Score( Level )\"\n  },\n  \"messages\": [\n    {\n      \"severity\": \"INFO\",\n      \"message\": \"ID : kyc_api_2022_impl_v1_2\",\n      \"messageType\": null,\n      \"sourceId\": null,\n      \"level\": \"INFO\"\n    },\n    {\n      \"severity\": \"INFO\",\n      \"message\": \"Name : KYC\",\n      \"messageType\": null,\n      \"sourceId\": null,\n      \"level\": \"INFO\"\n    },\n    {\n      \"severity\": \"INFO\",\n      \"message\": \"NS : urn://kyc.g.a.net/api/2022\",\n      \"messageType\": null,\n      \"sourceId\": null,\n      \"level\": \"INFO\"\n    },\n    {\n      \"severity\": \"INFO\",\n      \"message\": \"Description : KYC for FIS domain\",\n      \"messageType\": null,\n      \"sourceId\": null,\n      \"level\": \"INFO\"\n    }\n  ],\n  \"decisionResults\": [\n    {\n      \"decisionId\": \"_4054431E-93D3-40E5-ACEF-8F4D6DA45B5A\",\n      \"decisionName\": \"PEP Rule\",\n      \"result\": \"HIGH\",\n      \"messages\": [],\n      \"evaluationStatus\": \"SUCCEEDED\"\n    },\n    {\n      \"decisionId\": \"_B4A96E7B-9A87-470C-9868-391085BA0409\",\n      \"decisionName\": \"Fiscal Residency Rule\",\n      \"result\": \"LOW\",\n      \"messages\": [],\n      \"evaluationStatus\": \"SUCCEEDED\"\n    },\n    {\n      \"decisionId\": \"_58ECD9FC-1269-446F-8792-D8DD0139D7DD\",\n      \"decisionName\": \"KYC\",\n      \"result\": {\n        \"Score\": \"HIGH\",\n        \"Level\": 75\n      },\n      \"messages\": [],\n      \"evaluationStatus\": \"SUCCEEDED\"\n    },\n    {\n      \"decisionId\": \"_177F55D1-B87A-4C26-A277-BD73C84725D1\",\n      \"decisionName\": \"Amount Rule\",\n      \"result\": \"LOW\",\n      \"messages\": [],\n      \"evaluationStatus\": \"SUCCEEDED\"\n    }\n  ]\n}\n```\n\n\n    curl 'http://localhost:8080/KYC' -X POST  -H 'Accept: application/json'  -H 'Content-Type: application/json'   --data-raw '{\"PEP\":true,\"Amount\":1000,\"Fiscal Residency\":\"FR\"}' | jq\n\n```\n{\n  \"Amount Rule\": \"LOW\",\n  \"Level to Int\": \"function Level to Int( Level )\",\n  \"Max Level\": \"function Max Level( list of Level )\",\n  \"KYC\": {\n    \"Score\": \"HIGH\",\n    \"Level\": 75\n  },\n  \"Fiscal Residency Rule\": \"LOW\",\n  \"Amount\": 1000,\n  \"Int to Level\": \"function Int to Level( Int )\",\n  \"PEP Rule\": \"HIGH\",\n  \"PEP\": true,\n  \"Fiscal Residency\": \"FR\",\n  \"Level to Score\": \"function Level to Score( Level )\"\n}\n```\n\n## Docker Build\n\n### KYC Engine Image Build\n\n```\ncd engine\nmvn clean package -Dmaven.test.skip=true -Dquarkus.package.type=uber-jar \ndocker build -f src/main/docker/Dockerfile.jvm -t kyc-engine .\n```\n\n### KYC Web Application Image Build\n\n```\ncd webapp\ndocker build -f Dockerfile -t kyc-webapp .\n```\n\n### Docker Compose Run\n\n```\ncd docker\ndocker-compose up \n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgautric%2Fkyc-dmn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgautric%2Fkyc-dmn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgautric%2Fkyc-dmn/lists"}