{"id":45658878,"url":"https://github.com/codeforboston/beacon","last_synced_at":"2026-02-24T08:57:55.936Z","repository":{"id":38783339,"uuid":"247163372","full_name":"codeforboston/beacon","owner":"codeforboston","description":"A Slackbot to help newcomers get oriented","archived":false,"fork":false,"pushed_at":"2023-01-07T22:17:51.000Z","size":621,"stargazers_count":1,"open_issues_count":13,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-08T18:45:10.364Z","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/codeforboston.png","metadata":{"funding":{"custom":"https://www.codeforamerica.org/donate-to-a-brigade?utm_campaign=CodeforBoston\u0026utm_source=github"},"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}},"created_at":"2020-03-13T21:19:18.000Z","updated_at":"2021-08-30T01:45:56.000Z","dependencies_parsed_at":"2023-02-08T02:48:21.497Z","dependency_job_id":null,"html_url":"https://github.com/codeforboston/beacon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codeforboston/beacon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforboston%2Fbeacon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforboston%2Fbeacon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforboston%2Fbeacon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforboston%2Fbeacon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeforboston","download_url":"https://codeload.github.com/codeforboston/beacon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeforboston%2Fbeacon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29777484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:54:30.205Z","status":"ssl_error","status_checked_at":"2026-02-24T04:53:58.628Z","response_time":75,"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":"2026-02-24T08:57:54.512Z","updated_at":"2026-02-24T08:57:55.911Z","avatar_url":"https://github.com/codeforboston.png","language":"TypeScript","funding_links":["https://www.codeforamerica.org/donate-to-a-brigade?utm_campaign=CodeforBoston\u0026utm_source=github"],"categories":[],"sub_categories":[],"readme":"## AWS Setup\n\n### Requirements\n\nInstall the [AWS command line tools](https://aws.amazon.com/cli/)\n\n### Credentials\n\nSet up a named [AWS\nprofile](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)\ncalled `cfb` with an access key id and secret from AWS IAM. You may need to\ncreate a new user in IAM with the ability to create and manage CloudFormation stacks.\n\n### Create an SQS Queue\n\nWhen creating the new queue:\n\nEnable *Content-based deduplication*. In the GUI, it's shown as a checkbox in\nthe *Configuration* section. If you're using the CLI, set\n`ContentBasedDeduplication` to `true` in your attributes map.\n\n```\nexport AWS_PROFILE=cfb\naws sqs create-queue --queue-name \"cfb-beacon-dev.fifo\" --attributes '{ \"MessageRetentionPeriod\":\"7200\",\"FifoQueue\":\"true\",\"ContentBasedDeduplication\":\"true\" }'\n```\n\n## Slack Setup\n\n[Create a Slack app](https://api.slack.com/apps?new_app=1)\n\nTo finish configuration, you'll need two more pieces of information: a signing\nsecret and a token.\n\nYou'll find the signing secret under **Basic Information**.\n\nUnder **OAuth \u0026 Permissions**, create a token by installing the new app in your\nworkspace. This will be your `BOT_OAUTH_TOKEN`. It usually starts with `xoxp` or\n`xoxb`.\n\nOn the command line, in root of this project, run:\n\n```bash\naws ssm put-parameter --name \"/beacon/dev/slack/token\" --value \"BOT_OAUTH_TOKEN\" --type SecureString\naws ssm put-parameter --name \"/beacon/dev/slack/secret\" --value \"SIGNING_SECRET\" --type SecureString\naws ssm put-parameter --name \"/beacon/dev/github/secret\" --value \"GITHUB_SECRET\" --type SecureString\n```\n\nwith the appropriate values substituted.\n\n## Google Sheets Setup\n\nOn the Google Cloud console, go to [Service\nAccounts](https://console.cloud.google.com/iam-admin/serviceaccounts/) and\ncreate a new service account. Do not grant the account any permissions (roles)\nduring this stage of setup.\n\n### Create Key\n\nGo to the **Keys** tab and press **Add Key** then **Create new key**. Select\n**JSON** as the key type. Move the downloaded file to the `functions` directory\nand rename it `service-account.json`.\n\n### Sheets: Add service account as editor\n\nCopy the fully qualified email address for the new service account. It will look\nsomething like **service-account-name@project-name.iam.gserviceaccount.com**.\n\nIn the RSVPs spreadsheet, open the sharing preferences and add the service\naccount email as an Editor.\n\n## Deploying\n\nInstall `serverless` (e.g., with `npm install -g serverless`)\n\nSwitch to the `functions` directory.\n\nRun `npm install`.\n\nRun `serverless deploy -s prod`. If you omit the stage, it will default to `dev`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeforboston%2Fbeacon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeforboston%2Fbeacon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeforboston%2Fbeacon/lists"}