{"id":34527602,"url":"https://github.com/eclipse-xfsc/cloud-wallet-account-service","last_synced_at":"2026-05-19T16:36:20.457Z","repository":{"id":289997216,"uuid":"970857673","full_name":"eclipse-xfsc/cloud-wallet-account-service","owner":"eclipse-xfsc","description":"Personal Credential Manager Cloud Account Service which manages the accounts for users.","archived":false,"fork":false,"pushed_at":"2025-08-04T19:39:56.000Z","size":206,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-05-12T18:31:30.233Z","etag":null,"topics":["pcm-cloud"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/eclipse-xfsc.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-22T16:33:56.000Z","updated_at":"2025-06-04T20:29:24.000Z","dependencies_parsed_at":"2025-04-26T08:33:42.740Z","dependency_job_id":null,"html_url":"https://github.com/eclipse-xfsc/cloud-wallet-account-service","commit_stats":null,"previous_names":["eclipse-xfsc/cloud-wallet-account-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eclipse-xfsc/cloud-wallet-account-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-xfsc%2Fcloud-wallet-account-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-xfsc%2Fcloud-wallet-account-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-xfsc%2Fcloud-wallet-account-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-xfsc%2Fcloud-wallet-account-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-xfsc","download_url":"https://codeload.github.com/eclipse-xfsc/cloud-wallet-account-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-xfsc%2Fcloud-wallet-account-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33224691,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T15:49:41.270Z","status":"ssl_error","status_checked_at":"2026-05-19T15:49:22.917Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["pcm-cloud"],"created_at":"2025-12-24T05:24:11.122Z","updated_at":"2026-05-19T16:36:20.452Z","avatar_url":"https://github.com/eclipse-xfsc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Account Service\n\nThe Account Service is a API gateway service designed to be an entry point for cloud PCM backend.\n\n## API Documentation\nThe API documentation is written in Swagger [Swagger Web UI](docs/swagger.json)\n\nIt can be accessed in local docker-compose environment [swagger_ui](http://localhost:8080/swagger/index.html).\n\nIt is generated using [swagger generation tool](https://github.com/swaggo/gin-swagger)\n\nIn case of changes in api definitions, it should be updated. Please run:\n```cmd\ngo install github.com/swaggo/swag/cmd/swag@latest\nswag init --parseDependency\n```\n## Available Endpoints\n\n- GET /v1/metrics/health\n- GET /swagger/*any\n- GET /v1/tenants/:tenantId/api/accounts/devices/list\n- GET /v1/tenants/:tenantId/api/accounts/devices/link\n- DELETE /v1/tenants/:tenantId/api/accounts/devices/:id\n- POST /v1/tenants/:tenantId/api/accounts/devices/block/:id\n- GET /v1/tenants/:tenantId/api/accounts/history/list\n- GET /v1/tenants/:tenantId/api/accounts/kms/keyTypes\n- GET /v1/tenants/:tenantId/api/accounts/kms/did/list\n- POST /v1/tenants/:tenantId/api/accounts/kms/did/create\n- DELETE /v1/tenants/:tenantId/api/accounts/kms/did/:kid\n- GET /v1/tenants/:tenantId/api/accounts/settings/ui\n- POST /v1/tenants/:tenantId/api/accounts/settings/ui\n- GET /v1/tenants/:tenantId/api/accounts/credentials/list\n- POST /v1/tenants/:tenantId/api/accounts/credentials/list\n- GET /v1/tenants/:tenantId/api/accounts/credentials/history\n- DELETE /v1/tenants/:tenantId/api/accounts/credentials/:id\n- GET /v1/tenants/:tenantId/api/accounts/credentials/:id/revoke\n- GET /v1/tenants/:tenantId/api/accounts/credentials/schemas\n- POST /v1/tenants/:tenantId/api/accounts/credentials/issue\n- PUT /v1/tenants/:tenantId/api/accounts/credentials/backup/:id/:bid\n- GET /v1/tenants/:tenantId/api/accounts/credentials/backup/:id/:bid\n- GET /v1/tenants/:tenantId/api/accounts/credentials/backup/link/:mode\n- GET /v1/tenants/:tenantId/api/accounts/credentials/backup/all\n- GET /v1/tenants/:tenantId/api/accounts/credentials/backup/latest\n- DELETE /v1/tenants/:tenantId/api/accounts/credentials/backup/invalid\n- DELETE /v1/tenants/:tenantId/api/accounts/credentials/backup/:bid\n- PUT /v1/tenants/:tenantId/api/accounts/credentials/offers/create\n- GET /v1/tenants/:tenantId/api/accounts/credentials/offers/list\n- POST /v1/tenants/:tenantId/api/accounts/credentials/offers/:id/accept\n\n## Dependency services\n\n[docker-compose](./deployment/docker/docker-compose.yml)\n\nInfrastructure\n- [Postgres](https://www.postgresql.org/)\n- [Nats](https://nats.io/)\n- [Vault](https://www.vaultproject.io/)\n\nMicroservices\n- [Storage service](https://gitlab.eclipse.org/eclipse/xfsc/organisational-credential-manager-w-stack/storage-service)\n- [Credential verification service](https://gitlab.eclipse.org/eclipse/xfsc/organisational-credential-manager-w-stack/credential-verification-service)\n- [Credential retrieval service](https://gitlab.eclipse.org/eclipse/xfsc/organisational-credential-manager-w-stack/credential-retrieval-service)\n- [Issuer service](https://gitlab.eclipse.org/eclipse/xfsc/organisational-credential-manager-w-stack/credential-issuance)\n- [Signer service](https://gitlab.eclipse.org/eclipse/xfsc/tsa/signer/-/tree/ocm-wstack?ref_type=heads)\n\n## Running the Service\n\n### In [Docker container](https://docs.docker.com/engine/install/) (recommended)\n\n1. Setup\n.env file or config.yaml can be used to define environment variables.\n\n2. Build and run service\n\nIf necessary, copy to terminal corresponding command from [Makefile](makefile)\n\n```make docker-compose-run```\n\n### Locally\n\n1. Setup\n   Define environment variables in terminal\n```\nACCOUNT_LISTENPORT=8080\nACCOUNT_SERVERMODE=production\nACCOUNT_NATS_WITHNATS=true\nACCOUNT_NATS_TIMEOUTINSEC=10s\nACCOUNT_NATS_URL=nats.nats.svc.cluster.local:4222\nACCOUNT_NATS_QUEUEGROUP=account-service\nACCOUNT_CLOUDEVENTS_TOPICS=didcomm-connector-invitation\nACCOUNT_MESSAGING_PROTOCOL=nats\nACCOUNT_MESSAGING_NATS_WITH_NATS=true\nACCOUNT_MESSAGING_NATS_URL=nats.nats.svc.cluster.local:4222\nACCOUNT_MESSAGING_NATS_TIMEOUTINSEC=10s\nACCOUNT_PROTOCOL=nats\nACCOUNT_DB_WITHDB=true\nACCOUNT_DB_DBTYPE=postgres\nACCOUNT_DB_HOST=testing-db-rw.postgres.svc.cluster.local\nACCOUNT_DB_PORT=5432\nACCOUNT_DB_USER=app\nACCOUNT_DB_PASSWORD=change me\nACCOUNT_DB_DBNAME=app\nACCOUNT_KEYCLOAK_URL=http://keycloak.keycloak.svc.cluster.local\nACCOUNT_KEYCLOAK_REALMNAME=react-keycloak\nACCOUNT_KEYCLOAK_TOKENTTL=250ns\nACCOUNT_KEYCLOAK_EXCLUDEENDPOINTS=/v1/tenants/:tenantId/api/accounts/credentials/backup/:id/:bid\nACCOUNT_STORAGE_URL=http://storage-service.default.svc.cluster.local:8080/v1/tenants/tenant_space/storage\nACCOUNT_STORAGE_WITHAUTH=false\nACCOUNT_BACKUPLINKTTL=300s\nACCOUNT_DIDCOMM_URL=http://didcomm-connector.default.svc.cluster.local:9090\nACCOUNT_SIGNER_URL=http://signer.default.svc.cluster.local:8080\nACCOUNT_CREDENTIALRETRIEVAL_URL=http://credential-retrieval-service.default.svc.cluster.local:8080/v1/tenants/tenant_space\nACCOUNT_CREDENTIALRETRIEVAL_OFFERTOPIC=offering\nACCOUNT_CREDENTIALVERIFIER_URL=http://credential-verification-service.default.svc.cluster.local:8080/v1/tenants/tenant_space/internal\nVAULT_ADRESS=http://vault.vault.svc.cluster.local:8200\nVAULT_TOKEN=mytoken\n```\n\n2. Build plugin\n\n```cmd\nmkdir etc\ncd etc\ngit clone https://gitlab.eclipse.org/eclipse/xfsc/libraries/crypto/engine/plugins/hashicorp-vault-provider.git .\ngo mod download\nCGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -mod=mod -buildmode=plugin -o /etc/plugins\n```\n3. Build and run service\n\n```cmd\ngo mod download\nCGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o /microservice\n./microservice\n```\n\n## Deploying the service\n\nDeployment is managed using [Helm](https://helm.sh)\n\nCharts are defined in [./deployment/helm](deployment/helm)\n\nFrom root\n\n```cmd\ncd deployment\nhelm install account-service ./helm -n \u003cyour namespace | default\u003e --kubeconfig \u003cpath to kubeconfig of necessary cluster\u003e\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-xfsc%2Fcloud-wallet-account-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-xfsc%2Fcloud-wallet-account-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-xfsc%2Fcloud-wallet-account-service/lists"}