{"id":22403095,"url":"https://github.com/hellocoop/cdk-client","last_synced_at":"2026-03-17T09:38:14.532Z","repository":{"id":225394455,"uuid":"765848221","full_name":"hellocoop/cdk-client","owner":"hellocoop","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-13T15:10:16.000Z","size":854,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-15T01:31:07.152Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/hellocoop.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-01T18:32:54.000Z","updated_at":"2025-12-13T15:10:20.000Z","dependencies_parsed_at":"2024-05-29T01:35:02.230Z","dependency_job_id":"bce6fe39-8e02-4bda-93c3-e6d52241a895","html_url":"https://github.com/hellocoop/cdk-client","commit_stats":null,"previous_names":["hellocoop/cdk-client"],"tags_count":101,"template":false,"template_full_name":null,"purl":"pkg:github/hellocoop/cdk-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellocoop%2Fcdk-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellocoop%2Fcdk-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellocoop%2Fcdk-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellocoop%2Fcdk-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellocoop","download_url":"https://codeload.github.com/hellocoop/cdk-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellocoop%2Fcdk-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30620752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T08:10:05.930Z","status":"ssl_error","status_checked_at":"2026-03-17T08:10:04.972Z","response_time":56,"last_error":"SSL_read: 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":[],"created_at":"2024-12-05T09:16:07.550Z","updated_at":"2026-03-17T09:38:14.516Z","avatar_url":"https://github.com/hellocoop.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @hellocoop/cdk-client\n\nA Hellō Client CDK Construct for a Lambda Function\n\n## Quickstart\n\n```sh\nnpm install @hellocoop/cdk-client\n```\n\n```TypeScript\nimport { HelloClientConstruct, Scope, ProviderHint  } from '@hellocoop/cdk-client'\n\n// Create the Hello Client Lambda and functionUrl\nconst helloClient = new HelloClientConstruct(this, 'HelloClient', {\n    clientID: CLIENT_ID,    // required = your Hellō client_id from https://console.hello.coop\n    hostname: HOSTNAME,     // recommended - public hostname \n\n    // Optional parameters:\n    //\n    cookieToken?: boolean; \n    // - Set to true to enable if a cookie token is returned in the op=auth response\n    //   Must be true if using the authorizer for API Gateway - see below\n    loginSyncFunctionName?: string; \n    // - Name of the lambda function to trigger on login - ARN is built from current region and account\n    loginSyncFunctionArn?: string;\n    // - Full ARN of the lambda function to trigger on login - use if lambda is in another region or account\n    providerHints?: ProviderHint[]; \n    // - Override default providers to show to new users. See https://www.hello.dev/docs/apis/wallet/#provider_hint\n    scopes?: Scope[]; \n    // - Override default array of scopes to request from the user. See https://www.hello.dev/docs/scopes/\n    functionName?: string; \n    // - Override default function name 'HelloClient'\n    route?: string; \n    // - Override default route (/api/hellocoop)\n    sameSiteStrict?: boolean; \n    // - Set to true to enable SameSite attribute to Strict\n    logDebug?: boolean;\n    // - Set to true to enable debug logging\n    helloDomain?: string;\n    // - Set to hello-beta.net to use the Hellō Beta service - note this is NOT stable!\n});\n\n// add Hello Client Lambda origin as a behavior to a Cloud Front Distribution\ndistribution.addBehavior(HELLO_API_ROUTE, new origins.FunctionUrlOrigin(helloClient.functionUrl), {\n    viewerProtocolPolicy: cf.ViewerProtocolPolicy.HTTPS_ONLY,\n    allowedMethods: cf.AllowedMethods.ALLOW_ALL,\n    cachePolicy: cf.CachePolicy.CACHING_DISABLED,\n    originRequestPolicy: new cf.OriginRequestPolicy(this, 'hellocoop', {\n        queryStringBehavior: cf.OriginRequestQueryStringBehavior.all(),\n        cookieBehavior: cf.OriginRequestCookieBehavior.all(),\n    }),\n});\n\n```\n\n## loginSyncFunction\n\nYou provide this Lambda to be called on successful login. It is passed:\n\n```json\n{\n    \"token\": \"ey ... ID Token for independent verification ...\",\n    \"payload\": {\n        \"iss\": \"https://issuer.hello.coop\",\n        \"aud\": \"2000a054-aa09-45a3-9f62-26e03ee9dc76\",\n        \"nonce\": \"4a6fc9b2-0f47-4105-a367-b9ae0ca12784\",\n        \"jti\": \"jti_MUYT099WI3g0h7MDiRuVMhHA_c7g\",\n        \"sub\": \"66752aed-9cc2-4d17-875f-379b1a578f9a\",\n        \"name\": \"Dick Hardt\",\n        \"picture\": \"https://pictures.hello.coop/r/eebce734-44c0-4c39-8161-ba77e08091f9.jpeg\",\n        \"email\": \"dick.hardt@gmail.com\",\n        \"email_verified\": true,\n        \"iat\": 1727210134,\n        \"exp\": 1727210434\n    }\n}\n```\n\nYou can then \n- create a user if they don't exist\n- run a policy and deny access\n- change what is returned by auth\n- change the path where the user will be redirected\n\nAll of the properties are optional:\n\n```json\n{  \n    \"accessDenied\": true,           // will deny access\n    \"updatedAuth\": {                // will update what is returned by the auth operation\n        \"role\":\"admin\"\n    },\n    \"target_uri\": \"/new_location\"   // path to send user when complete\n}\n```\n\n\n## Client Usage\n\nSee TBD for details\n\n### Login\n`/api/hellocoop?op=login`\n\n### Logout\n`/api/hellocoop?op=logout`\n\n### Get Auth\n`/api/hellocoop?op=auth`\n\n## Sample\n\nSee [client-sample-stack.ts](cdk-sample/lib/client-sample-stack.ts) in [cdk-sample](cdk-sample)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellocoop%2Fcdk-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellocoop%2Fcdk-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellocoop%2Fcdk-client/lists"}