{"id":20038855,"url":"https://github.com/defra/ffc-pay-core","last_synced_at":"2025-09-20T08:33:28.261Z","repository":{"id":41833085,"uuid":"447760414","full_name":"DEFRA/ffc-pay-core","owner":"DEFRA","description":"Orchestrate local development of payment services","archived":false,"fork":false,"pushed_at":"2025-01-09T09:54:30.000Z","size":202,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-01-09T10:34:34.769Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","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/DEFRA.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":"2022-01-13T21:40:48.000Z","updated_at":"2025-01-09T09:31:19.000Z","dependencies_parsed_at":"2024-06-26T19:59:10.314Z","dependency_job_id":"0fcc0760-72d0-47a6-a1e7-3b1bedef0f0a","html_url":"https://github.com/DEFRA/ffc-pay-core","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/DEFRA%2Fffc-pay-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DEFRA%2Fffc-pay-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DEFRA%2Fffc-pay-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DEFRA%2Fffc-pay-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DEFRA","download_url":"https://codeload.github.com/DEFRA/ffc-pay-core/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233648600,"owners_count":18708225,"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":[],"created_at":"2024-11-13T10:33:34.018Z","updated_at":"2025-09-20T08:33:28.253Z","avatar_url":"https://github.com/DEFRA.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Payment Hub Core\n\nLocal development support for orchestrating all Payment Hub microservices.\n\n## Prerequisites\n\nEnsure you have satisfied the prerequisites of all individual repositories.\n\n## Repositories\n\n### Payments\n\n#### Processing\n\n- [ffc-pay-gateway](https://github.com/defra/ffc-pay-gateway)\n- [ffc-pay-batch-verifier](https://github.com/defra/ffc-pay-batch-verifier)\n- [ffc-pay-batch-processor](https://github.com/defra/ffc-pay-batch-processor)\n- [ffc-pay-enrichment](https://github.com/defra/ffc-pay-enrichment)\n- [ffc-pay-processing](https://github.com/defra/ffc-pay-processing)\n- [ffc-pay-submission](https://github.com/defra/ffc-pay-submission)\n- [ffc-pay-tracking](https://github.com/defra/ffc-pay-tracking)\n- [ffc-pay-responses](https://github.com/defra/ffc-pay-responses)\n- [ffc-pay-request-editor](https://github.com/defra/ffc-pay-request-editor)\n- [ffc-pay-web](https://github.com/defra/ffc-pay-web)\n- [ffc-pay-file-publisher](https://github.com/defra/ffc-pay-file-publisher)\n- [ffc-pay-file-receiver](https://github.com/defra/ffc-pay-file-receiver)\n- [ffc-pay-injection](https://github.com/defra/ffc-pay-injection)\n- [ffc-pay-xb](https://github.com/defra/ffc-pay-xb)\n- [ffc-pay-dps](https://github.com/defra/ffc-pay-dps)\n- [ffc-pay-demographics](https://github.com/defra/ffc-pay-demographics)\n- [ffc-pay-fdmr](https://github.com/defra/ffc-pay-fdmr)\n\n#### Monitoring\n\n- [ffc-pay-event-hub](https://github.com/defra/ffc-pay-event-hub)\n- [ffc-pay-data-hub](https://github.com/defra/ffc-pay-data-hub)\n- [ffc-pay-alerting](https://github.com/defra/ffc-pay-alerting)\n- [ffc-pay-report-generator](https://github.com/defra/ffc-pay-report-generator)\n\n### Statements\n\n- [ffc-doc-statement-data](https://github.com/defra/ffc-doc-statement-data)\n- [ffc-doc-statement-constructor](https://github.com/defra/ffc-doc-statement-constructor)\n- [ffc-doc-statement-generator](https://github.com/defra/ffc-doc-statement-generator)\n- [ffc-doc-statement-publisher](https://github.com/defra/ffc-doc-statement-publisher)\n- [ffc-doc-statement-receiver](https://github.com/defra/ffc-doc-statement-receiver)\n\n## Sequence\n\n### Payments\n\n```mermaid\nflowchart LR\nffc-pay-gateway(Kubernetes - ffc-pay-gateway)\nffc-pay-batch-verifier(Kubernetes - ffc-pay-batch-verifier)\nffc-pay-batch-processor(Kubernetes - ffc-pay-batch-processor)\nffc-pay-enrichment(Kubernetes - ffc-pay-enrichment)\nffc-pay-processing(Kubernetes - ffc-pay-processing)\nffc-pay-submission(Kubernetes - ffc-pay-submission)\nffc-pay-responses(Kubernetes - ffc-pay-responses)\nffc-pay-request-editor(Kubernetes - ffc-pay-request-editor)\nffc-pay-web(Kubernetes - ffc-pay-web)\nffc-pay-file-publisher(Kubernetes - ffc-pay-file-publisher)\nffc-pay-file-receiver(Kubernetes - ffc-pay-file-receiver)\nffc-pay-injection(Kubernetes - ffc-pay-injection)\n\nstorageBatch[Azure Blob Storage - Batch]\nstorageManual[Azure Blob Storage - Manual]\nstorageDAX[Azure Blob Storage - DAX]\n\ntopicRequest[Azure Service Bus Topic - ffc-pay-request]\ntopicResponse[Azure Service Bus Topic - ffc-pay-request-response]\ntopicProcessing[Azure Service Bus Topic - ffc-pay-processing]\ntopicSubmit[Azure Service Bus Topic - ffc-pay-submit]\ntopicFileSend[Azure Service Bus Topic - ffc-pay-file-send]\ntopicFileConsume[Azure Service Bus Topic - ffc-pay-file-consume]\ntopicReturn[Azure Service Bus Topic - ffc-pay-return]\ntopicAck[Azure Service Bus Topic - ffc-pay-acknowledgement]\ntopicDebt[Azure Service Bus Topic - ffc-pay-debt-data]\ntopicDebtResponse[Azure Service Bus Topic - ffc-pay-debt-data-response]\ntopicLedger[Azure Service Bus Topic - ffc-pay-manual-ledger-check]\ntopicLedgerResponse[Azure Service Bus Topic - ffc-pay-manual-ledger-response]\ntopicEvent[Azure Service Bus Topic - ffc-pay-event]\n\nffc-pay-gateway ==\u003e storageBatch\nstorageBatch ==\u003e ffc-pay-batch-verifier\nstorageBatch ==\u003e ffc-pay-batch-processor\nffc-pay-batch-processor ==\u003e topicRequest\ntopicRequest ==\u003e ffc-pay-enrichment\nffc-pay-enrichment ==\u003e topicResponse\nffc-pay-enrichment ==\u003e topicProcessing\ntopicProcessing ==\u003e ffc-pay-processing\nffc-pay-processing ==\u003e topicSubmit\ntopicSubmit ==\u003e ffc-pay-submission\nffc-pay-submission ==\u003e storageDAX\nffc-pay-submission ==\u003e topicFileSend\ntopicFileSend ==\u003e ffc-pay-file-sender\ntopicFileSend ==\u003e ffc-pay-file-publisher\nstorageDAX ==\u003e ffc-pay-file-publisher\nstorageDAX ==\u003e ffc-pay-gateway\nstorageManual ==\u003e ffc-pay-injection\nffc-pay-injection ==\u003e topicRequest\n\ntopicFileConsume ==\u003e ffc-pay-file-receiver\nffc-pay-file-consumer ==\u003e storageDAX\nstorageDAX ==\u003e ffc-pay-responses\nffc-pay-responses ==\u003e topicAck\nffc-pay-responses ==\u003e topicReturn\ntopicAck ==\u003e ffc-pay-processing\ntopicReturn ==\u003e ffc-pay-processing\n\nffc-pay-processing ==\u003e topicDebt\nffc-pay-processing ==\u003e topicLedger\ntopicDebt ==\u003e ffc-pay-request-editor\ntopicLedger ==\u003e ffc-pay-request-editor\nffc-pay-request-editor ==\u003e topicDebtResponse\nffc-pay-request-editor ==\u003e topicLedgerResponse\ntopicDebtResponse ==\u003e ffc-pay-processing\ntopicLedgerResponse ==\u003e ffc-pay-processing\n\nffc-pay-web --\u003e ffc-pay-processing\nffc-pay-web --\u003e storageReport\nffc-pay-web --\u003e storageProjection\n```\n\n### Monitoring\n\n```mermaid\nflowchart LR\nffc-pay-batch-processor(Kubernetes - ffc-pay-batch-processor)\nffc-pay-enrichment(Kubernetes - ffc-pay-enrichment)\nffc-pay-processing(Kubernetes - ffc-pay-processing)\nffc-pay-submission(Kubernetes - ffc-pay-submission)\nffc-pay-responses(Kubernetes - ffc-pay-responses)\nffc-pay-request-editor(Kubernetes - ffc-pay-request-editor)\nffc-pay-web(Kubernetes - ffc-pay-web)\n\nffc-pay-event-hub(Kubernetes - ffc-pay-event-hub)\nffc-pay-data-hub(Kubernetes - ffc-pay-data-hub)\nffc-pay-alerting(Kubernetes - ffc-pay-alerting)\nffc-pay-report-generator(Kubernetes - ffc-pay-report-generator)\n\nstorageTablePayments[Azure Table Storage - Payments]\nstorageTableBatches[Azure Table Storage - Batches]\nstorageTableHolds[Azure Table Storage - Holds]\nstorageTableWarnings[Azure Table Storage - Warnings]\nstorageReport[Azure Blob Storage - Reports]\n\ntopicEvents[Azure Service Bus Topic - ffc-pay-events]\ntopicAlert[Azure Service Bus Topic - ffc-pay-alert]\n\nffc-pay-batch-processor --\u003e topicEvents\nffc-pay-enrichment --\u003e topicEvents\nffc-pay-processing --\u003e topicEvents\nffc-pay-submission --\u003e topicEvents\nffc-pay-responses --\u003e topicEvents\nffc-pay-request-editor --\u003e topicEvents\ntopicEvents --\u003e ffc-pay-event-hub\nffc-pay-event-hub --\u003e topicAlert\nffc-pay-event-hub --\u003e storageTablePayments\nffc-pay-event-hub --\u003e storageTableBatches\nffc-pay-event-hub --\u003e storageTableHolds\nffc-pay-event-hub --\u003e storageTableWarnings\ntopicAlert --\u003e ffc-pay-alerting\n\nstorageTablePayments --\u003e ffc-pay-report-generator\nffc-pay-report-generator --\u003e storageReports\n\nffc-pay-web --\u003e storageReport\nffc-pay-web --\u003e ffc-pay-data-hub\n```\n\n### Statements\n\n```mermaid\nflowchart LR\n\nffc-doc-statement-data(Kubernetes - ffc-doc-statement-data)\nffc-doc-statement-constructor(Kubernetes - ffc-doc-statement-constructor)\nffc-doc-statement-generator(Kubernetes - ffc-doc-statement-generator)\nffc-doc-statement-publisher(Kubernetes - ffc-doc-statement-publisher)\nffc-doc-statement-receiver(Kubernetes - ffc-doc-statement-receiver)\n\nstorageStatements[Azure Blob Storage - Statements]\n\ntopicProcessing[Azure Service Bus Topic - ffc-pay-processing]\ntopicSubmit[Azure Service Bus Topic - ffc-pay-submit]\ntopicReturn[Azure Service Bus Topic - ffc-pay-return]\ntopicStatementData[Azure Service Bus Topic - ffc-doc-statement-data]\ntopicStatements[Azure Service Bus Topic - ffc-pay-statements]\ntopicStatementPublish[Azure Service Bus Topic - ffc-doc-statement-publish]\n\nffc-doc-statement-data ==\u003e topicStatementData\ntopicStatementData ==\u003e ffc-doc-statement-constructor\ntopicProcessing ==\u003e ffc-doc-statement-constructor\ntopicSubmit ==\u003e ffc-doc-statement-constructor\ntopicReturn ==\u003e ffc-doc-statement-constructor\nffc-doc-statement-constructor ==\u003e topicStatements\ntopicStatements ==\u003e ffc-doc-statement-generator\nffc-doc-statement-generator ==\u003e topicStatementPublish\nffc-doc-statement-generator ==\u003e storageStatements\ntopicStatementPublish ==\u003e ffc-doc-statement-publisher\nstorageStatements ==\u003e ffc-doc-statement-publisher\nstorageStatements ==\u003e ffc-doc-statement-receiver\n```\n\n## Scripts\n\n### Clone\n\nClone all repositories from GitHub. Repositories will cloned in the parent directory of this repository.\n\n[`./clone`](clone)\n\n### Update\n\nSwitch to `main` branch in every repository and pull latest changes with `git pull`.\n\n[`./update`](update)\n\n### Build\n\nBuild/rebuild Docker container for all microservices.\n\n[`./build`](build)\n\n### Setup\n\nBacks up your existing `~/.bashrc`, copies in the template, injects your email, suffix, and fetches Azure Key Vault secrets.  \nSaves your Key Vault name, email and suffix in `~/.bashrc_setup.conf` so you only enter them once.\n\n[`./setup`](setup)\n\n#### Optional arguments\n\n- `-r` - removed saved configuration `.bashrc_setup.conf`\n\n### Start\n\nRun all payment services.\n\nRuns `Seed` script if `ffc-pay-scripts` repository is cloned.\n\n[`./start`](start)\n\n#### Optional arguments\n\n- `-f` - include Azure Functions\n- `-s` - include Statement services\n- `-S` - only statement services\n\n### Stop\n\nRun all payment services.\n\n[`./stop`](stop)\n\n#### Optional arguments\n\nAny valid `docker compose down` argument.\n\n### Seed\n\nSeed customer mapping data from private repository to `ffc-pay-enrichment` if `ffc-pay-scripts` repository is cloned.\n\n[`./seed`](seed)\n\n### Open\n\nOpen all payment services in Visual Studio Code.\n\n[`./open`](open)\n\n#### Optional arguments\n\n- `-f` - include Azure Functions\n- `-s` - include Statement services\n- `-S` - only statement services\n\n### Latest versions\n\nList latest GitHub release version for each microservice.\n\n[`./latest-versions`](latest-versions)\n\n### Environment versions\n\nList current environment version for each microservice hosted in Kubernetes.\n\n[`./environment-versions`](environment-versions)\n\n#### Options\n\n- `-c | --cluster` - Kubernetes cluster context name\n- `-n | --namespace` - Kubernetes namespace\n\n### Resource quota\n\nDetermine the Kubernetes resource usage for a namespace based on all microservices running at maximum capacity and scaling.\n\n[`./resource-quota`](resource-quota)\n\n## Resources\n\n### Payments\n\nA set of test datasets and scripts to support testing of payments.\n\n### Statements\n\nA set of test datasets and scripts to support testing of statements.\n\nInstructions for use can be read [here](resources/testing/statements/Instructions.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdefra%2Fffc-pay-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdefra%2Fffc-pay-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdefra%2Fffc-pay-core/lists"}