From 6e3de316950b7225d92018188160eb617e8cff1a Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:05:21 -0800 Subject: [PATCH 01/26] Updates app.json to contain SV uri --- app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.json b/app.json index a52f7d49e..f98432b9e 100644 --- a/app.json +++ b/app.json @@ -1,7 +1,7 @@ { "name": "spoke", "description": "Mass peer to peer texting tool", - "repository": "https://github.com/moveonorg/spoke", + "repository": "https://github.com/StateVoicesNational/spoke", "success_url": "/", "stack": "container", "env": { From 790d2eba7b1aff4373f18d2f4e6761ee3c07629f Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:06:56 -0800 Subject: [PATCH 02/26] Updates Contributing.md to contain SV uri --- CONTRIBUTING.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cb7f62380..f88543341 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,7 +9,7 @@ many important organizations! - Please fill out the Join form there, and once you are on-boarded, we can chat live! - ProgCode has community guidelines - We have a weekly(ish) working group at [Progressive HackNight](https://progressivehacknight.org) that organizes in the #wg-spoke_p2p_sms_tool channel in the slack -- Feel free to [create an issue or comment on an existing issue](https://github.com/MoveOnOrg/Spoke/issues) -- Every time we hear from the outside progressive developer community, we do a little dance. +- Feel free to [create an issue or comment on an existing issue](https://github.com/StateVoicesNational/Spoke/issues) -- Every time we hear from the outside progressive developer community, we do a little dance. - We also welcome reaching out on our [MoveOn Spoke interest form](https://act.moveon.org/survey/spoke-project/) with questions, etc. In all forums we affirm the [Progressive Coder Community Guidelines](https://docs.google.com/document/d/1coMHvuGf6x6Qn_73SEhOXi_QaoRBM__3Zj6_5TyrmWs/edit#heading=h.ab96v3qhdgk9) @@ -26,19 +26,19 @@ gratitude and appreciation of everyone's time and work. Generally, the first steps are: - Fork this repository and clone it on your local. Our main branch is called `main`. -- Get a working development environment (see the [ENVIRONMENT](https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md) to onboard and [DEVELOPMENT TIPS](https://github.com/MoveOnOrg/Spoke/blob/main/docs/EXPLANATION-development-guidelines.md) which is included in the explanation section [docs/](https://github.com/MoveOnOrg/Spoke/tree/main/docs))-- reach out through our communication channels (above) if you have issues. +- Get a working development environment (see the [ENVIRONMENT](https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md) to onboard and [DEVELOPMENT TIPS](https://github.com/StateVoicesNational/Spoke/blob/main/docs/EXPLANATION-development-guidelines.md) which is included in the explanation section [docs/](https://github.com/StateVoicesNational/Spoke/tree/main/docs))-- reach out through our communication channels (above) if you have issues. ### Picking an issue -- We mark issues that are good first issues with the [`good first issue` tag](https://github.com/MoveOnOrg/Spoke/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). We have these set aside for first contributions to make it more accessible to get started. +- We mark issues that are good first issues with the [`good first issue` tag](https://github.com/StateVoicesNational/Spoke/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). We have these set aside for first contributions to make it more accessible to get started. - Comment on the issue and tell us that you're working on it. Feel free to ask any clarifying questions that you have. -- If you have an idea, then create an issue and if possible discuss with us on slack (see communication channels). If it's a big project, please use the [project proposal template](https://github.com/MoveOnOrg/Spoke/issues/new?assignees=&labels=idea+%28underspec%27d%29&template=architecture-proposal.md&title=RFC%3A+%3Cyour-proposal-title%3E). We might follow up to try to arrange a call or video chat to make sure we're all on the same page. +- If you have an idea, then create an issue and if possible discuss with us on slack (see communication channels). If it's a big project, please use the [project proposal template](https://github.com/StateVoicesNational/Spoke/issues/new?assignees=&labels=idea+%28underspec%27d%29&template=architecture-proposal.md&title=RFC%3A+%3Cyour-proposal-title%3E). We might follow up to try to arrange a call or video chat to make sure we're all on the same page. - If you reach out to us, on github or slack we'll generally try to respond within 1 business day. If you haven't heard from us, please ping us again. ### Working on an issue - Depending on the part of the codebase you are working on read relevant parts of [EXPLANATION-development-guidelines.md](./docs/EXPLANATION-development-guidelines.md) for some context and common gotchas. -- While working on an issue, run existing tests to make sure they still work (see [How To Run Tests](https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO-run_tests.md) documentation). +- While working on an issue, run existing tests to make sure they still work (see [How To Run Tests](https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO-run_tests.md) documentation). - Please try adding a test ### Submitting your Pull Request @@ -53,10 +53,10 @@ Generally, the first steps are: Welcome to the project! Once you've completed that first contribution, there are so many different areas of Spoke that you can jump in to work on and it can be overwhelming to know how to continue your journey. ### Finding issues -- All issues that are up for grabs and mostly (if not fully) planned are listed under the [help wanted](https://github.com/MoveOnOrg/Spoke/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) label. This is a great place to start if you don't feel attached to any particular issue and just want to keep helping out. +- All issues that are up for grabs and mostly (if not fully) planned are listed under the [help wanted](https://github.com/StateVoicesNational/Spoke/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) label. This is a great place to start if you don't feel attached to any particular issue and just want to keep helping out. - We use our [Area labels](docs/EXPLANATION-labels.md) to categorize issues into which code feature areas they belong in. Feel free to sort by an area you're interested in. - We use our [Organization labels](docs/EXPLANATION-labels.md) to categorize issues by which organizations are prioritizing them. You can sort by your favorite org and help out there. -- More broadly, there are all sort of different [labels](https://github.com/MoveOnOrg/Spoke/labels) we use to filter the issues down and you can leverage that to help you find work. +- More broadly, there are all sort of different [labels](https://github.com/StateVoicesNational/Spoke/labels) we use to filter the issues down and you can leverage that to help you find work. - Lastly, you can always ping a project maintainer (@ibrand, and @schuyler1d) to get a read on what's on our radar right now. ### Claiming issues @@ -70,7 +70,7 @@ Welcome to the project! Once you've completed that first contribution, there are - Remember to write tests with your contribution! ### Becoming a regular -Spoke has a concept of [Access Groups](https://github.com/MoveOnOrg/Spoke/wiki/Spoke-Access-Groups) meant to give extra repo privileges to recurring contributors. Access Groups honor community members who are contributing through their issue authorship and also those who contribute code. If you continue to contribute to Spoke, there are pathways towards larger projects and community involvement. +Spoke has a concept of [Access Groups](https://github.com/StateVoicesNational/Spoke/wiki/Spoke-Access-Groups) meant to give extra repo privileges to recurring contributors. Access Groups honor community members who are contributing through their issue authorship and also those who contribute code. If you continue to contribute to Spoke, there are pathways towards larger projects and community involvement. ### Release Process @@ -83,7 +83,7 @@ The actual process: - We create a new stage-main branch at least twice a month: - The stage-main branch includes the latest approved pull requests in one merged branch - This ensures that PRs will not contain anything that breaks deployment and also will allow us to see if any PRs negatively interact with each other before they end up merged to main. Why bother with this step? It's helpful to have a separate "release candidate" on the stage-main branch because in earlier testing rounds people weren't sure what had been deployed to staging and having a separate branch makes this explicit and clear. - - After stage-main is created, we deploy it to MoveOn's staging instance. We have a small set of QA volunteers who then run through a list of [QA steps](https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO_QA_GUIDE.md) in order to find bugs and test new features. + - After stage-main is created, we deploy it to MoveOn's staging instance. We have a small set of QA volunteers who then run through a list of [QA steps](https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_QA_GUIDE.md) in order to find bugs and test new features. - After QA is completed, and volunteers haven't identified any bugs, we deploy stage-main to production. - We let stage-main run in production for at least a day, before merging stage-main into the main branch. - We never roll code directly to prod without first testing on staging. From 06b2089e0b4c0550618ba7ae37e809a43e8222b0 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:07:52 -0800 Subject: [PATCH 03/26] Updates package.json to contain SV uri --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 3395c857f..480488034 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/MoveOnOrg/spoke.git" + "url": "git+https://github.com/StateVoicesNational/spoke.git" }, "keywords": [ "spoke", @@ -76,9 +76,9 @@ "author": "Axle Factory", "license": "GPL-3.0-only", "bugs": { - "url": "https://github.com/MoveOnOrg/Spoke/issues" + "url": "https://github.com/StateVoicesNational/Spoke/issues" }, - "homepage": "https://github.com/MoveOnOrg/Spoke/#readme", + "homepage": "https://github.com/StateVoicesNational/Spoke/#readme", "dependencies": { "@aoberoi/passport-slack": "^1.0.5", "@babel/cli": "^7.19.3", From 6d52ddaf44a8a9c09110b8127a170c56dc847ac3 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:08:54 -0800 Subject: [PATCH 04/26] Updates pull request template to contain SV uri --- pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pull_request_template.md b/pull_request_template.md index c0e2cef84..f7f5424e7 100644 --- a/pull_request_template.md +++ b/pull_request_template.md @@ -9,7 +9,7 @@ _Please include a summary of the change and which issue is fixed. Please also in - [ ] I have manually tested my changes on desktop and mobile - [ ] The test suite passes locally with my changes - [ ] If my change is a UI change, I have attached a screenshot to the description section of this pull request -- [ ] [My change is 300 lines of code or less](https://github.com/MoveOnOrg/Spoke/blob/main/CONTRIBUTING.md#submitting-your-pull-request), or has a documented reason in the description why it’s longer +- [ ] [My change is 300 lines of code or less](https://github.com/StateVoicesNational/Spoke/blob/main/CONTRIBUTING.md#submitting-your-pull-request), or has a documented reason in the description why it’s longer - [ ] I have made any necessary changes to the documentation - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] My PR is labeled [WIP] if it is in progress From b4d47f667f62da6941f2ee1f81ac23831192c5cd Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:09:35 -0800 Subject: [PATCH 05/26] Updates githubworkflow to have statevoicesnational uri --- .github/workflows/build-image.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-image.yaml b/.github/workflows/build-image.yaml index e2c196942..372a645bf 100644 --- a/.github/workflows/build-image.yaml +++ b/.github/workflows/build-image.yaml @@ -27,7 +27,7 @@ jobs: uses: docker/metadata-action@v3 with: images: | - ghcr.io/moveonorg/spoke + ghcr.io/statevoicesnational/spoke tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} From 72125c1687ea3fa367c8ab0c38faa156396a9fd8 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:11:20 -0800 Subject: [PATCH 06/26] Updates line 12 to reflect sv uri --- __test__/cypress/plugins/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/__test__/cypress/plugins/index.js b/__test__/cypress/plugins/index.js index 91875c813..a829b5775 100644 --- a/__test__/cypress/plugins/index.js +++ b/__test__/cypress/plugins/index.js @@ -9,7 +9,7 @@ if (process.env.DEFAULT_SERVICE !== "fakeservice") { } // PostgreSQL required because of a conflict between the sqlite and electron binaries -// See: https://github.com/MoveOnOrg/Spoke/issues/1529#issuecomment-623680962 +// See: https://github.com/StateVoicesNational/Spoke/issues/1529#issuecomment-623680962 if (process.env.DB_TYPE !== "pg") { throw "Running Cypress tests against Sqlite is not currently supported"; } From 8a917d23c3674ba62d3450c57429eb939001ef32 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:13:07 -0800 Subject: [PATCH 07/26] Updates test extension actionhandler to contain sv uri --- __test__/extensions/action-handlers/zapier-action.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__test__/extensions/action-handlers/zapier-action.test.js b/__test__/extensions/action-handlers/zapier-action.test.js index f2bf0cef8..c9d7f3916 100644 --- a/__test__/extensions/action-handlers/zapier-action.test.js +++ b/__test__/extensions/action-handlers/zapier-action.test.js @@ -103,7 +103,7 @@ describe("zapier-action", () => { id: 62, organization_id: 1, title: "COPY - COPY - Test Campaign for PR 1995", - description: "https://github.com/MoveOnOrg/Spoke/pull/1995", + description: "https://github.com/StateVoicesNational/Spoke/pull/1995", is_started: true, due_by: "2021-08-17T00:00:00.000Z", created_at: "2021-08-14T02:00:08.065Z", @@ -430,7 +430,7 @@ describe("zapier-action", () => { id: 60, organization_id: 1, title: "Test Campaign for PR 1995", - description: "https://github.com/MoveOnOrg/Spoke/pull/1995", + description: "https://github.com/StateVoicesNational/Spoke/pull/1995", is_started: true, due_by: "2021-08-17T00:00:00.000Z", created_at: "2021-08-14T00:34:57.590Z", From abce3e956d5bd6f6f15d09be39c109d1a1fad8f5 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:15:01 -0800 Subject: [PATCH 08/26] Updates test server api campaign test to have correct sv uri --- __test__/server/api/campaign/campaign.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/__test__/server/api/campaign/campaign.test.js b/__test__/server/api/campaign/campaign.test.js index 9884eabbb..2589c5b19 100644 --- a/__test__/server/api/campaign/campaign.test.js +++ b/__test__/server/api/campaign/campaign.test.js @@ -302,7 +302,7 @@ it("save campaign interaction steps, edit it, make sure the last value is set", // COPIED CAMPAIGN const copiedCampaign1 = await copyCampaign(testCampaign.id, testAdminUser); - // 2nd campaign to test against https://github.com/MoveOnOrg/Spoke/issues/854 + // 2nd campaign to test against https://github.com/StateVoicesNational/Spoke/issues/854 const copiedCampaign2 = await copyCampaign(testCampaign.id, testAdminUser); expect(copiedCampaign1.data.copyCampaign.id).not.toEqual(testCampaign.id); From 032f64f8589472430b34c268a3cfb9088905bc62 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:19:53 -0800 Subject: [PATCH 09/26] Updates dev guide uri's to StateVoicesNational --- docs/EXPLANATION-development-guidelines.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/EXPLANATION-development-guidelines.md b/docs/EXPLANATION-development-guidelines.md index 20a41e889..483ca3611 100644 --- a/docs/EXPLANATION-development-guidelines.md +++ b/docs/EXPLANATION-development-guidelines.md @@ -3,7 +3,7 @@ This document describes tips and current gotchas in our code base and explains the context for parts that are evolving in a certain direction (or we *want* to evolve in a certain direction). -See [ENVIRONMENT](https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md) to calibrate your development environment, [DEVELOPMENT TIPS](https://github.com/MoveOnOrg/Spoke/blob/main/docs/EXPLANATION-development-guidelines.md), [CONTRIBUTING](../CONTRIBUTING.md) instructions and an overview about how to help and join in development. +See [ENVIRONMENT](https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md) to calibrate your development environment, [DEVELOPMENT TIPS](https://github.com/StateVoicesNational/Spoke/blob/main/docs/EXPLANATION-development-guidelines.md), [CONTRIBUTING](../CONTRIBUTING.md) instructions and an overview about how to help and join in development. The [README](../README.md) is available for deployment when you are working in production with an organization. ## Documentation Organization @@ -56,7 +56,7 @@ environment variable: Spoke was originally implemented with a noSQL-style RethinkDB backend. For scaling, lack of support, and an easier development environment, MoveOn moved the backend to use Knex.js. However, instead of trying to reimplement all backend calls which would have been -an immense challenge, we implemented a [rethink-knex-adapter](https://github.com/MoveOnOrg/rethink-knex-adapter) +an immense challenge, we implemented a [rethink-knex-adapter](https://github.com/StateVoicesNational/rethink-knex-adapter) This legacy leaves us with many remnants from the original rethink connector. Some are nice and leverage some good parts of having an ORM, but some are prone to bugs and can be confusing. @@ -98,10 +98,10 @@ await r.knex('job_request').where({ assigned: true }).where('updated_at', '<', t There are two specific gotchas: * Do NOT use knex.insert and instead use `.save(...)` * The reasoning is because sqlite does not support `returning()` as such and - [knex has inconsistent behavior for returning id values](https://github.com/MoveOnOrg/rethink-knex-adapter/blob/master/models.js#L206-L214). + [knex has inconsistent behavior for returning id values](https://github.com/StateVoicesNational/rethink-knex-adapter/blob/master/models.js#L206-L214). Sqlite does not support knex's `returning()` method. This affects running `r.knex.insert(....)` * Sqlite does not convert datefields in knex. - See for example: https://github.com/MoveOnOrg/Spoke/issues/817 + See for example: https://github.com/StateVoicesNational/Spoke/issues/817 One solution is to use r.table(...).getAll which WILL convert them. Otherwise, make sure your code does the conversion when necessary. * Knex also has different behavior between database backends for `knex.raw()` queries. @@ -156,10 +156,10 @@ we want to add a value to campaign info for that edit page. We might need to edi * Roles are assigned per-organization. Users can be assigned a cross-organizational property called 'superadmin' which is limited for actions that could undermine the security of the system or access system-level data. -* Security for top-level graphQL queries are in rootResolvers.RootQuery object in [server/api/schema.js](https://github.com/MoveOnOrg/Spoke/blob/dec93521d54ea46476d2a5c7eb9deeedbd69d53f/src/server/api/schema.js#L1122) +* Security for top-level graphQL queries are in rootResolvers.RootQuery object in [server/api/schema.js](https://github.com/StateVoicesNational/Spoke/blob/dec93521d54ea46476d2a5c7eb9deeedbd69d53f/src/server/api/schema.js#L1122) * These correspond to e.g. getContact or getOrganization, etc * Mutations and custom queries are inside the method -* Helper functions are in [server/api/errors.js](https://github.com/MoveOnOrg/Spoke/blob/main/src/server/api/errors.js) which should/will be optimized to use cached info, etc. Each of them will throw an error and therefore cancel the request if the user doesn't have the appropriate access. +* Helper functions are in [server/api/errors.js](https://github.com/StateVoicesNational/Spoke/blob/main/src/server/api/errors.js) which should/will be optimized to use cached info, etc. Each of them will throw an error and therefore cancel the request if the user doesn't have the appropriate access. * `authRequired(user)` establishes that the user is not anonymous * `accessRequired(user, orgId, role, allowSuperadmin = false)` will require the user to have a certain role or higher. Pass in `true` to allowSuperadmin if superadmins should be allowed. Generally they should be allowed to do things, but might as well be explicit. * `assignmentRequiredOrAdminRole(user, organizationId, assignmentId)` makes sure that the user has the assignment in question and is a TEXTER or is an ADMIN. (optional arguments after assignmentId are `contact, assignment` which if already available in the context can speed checking -- those arguments should be loaded manually, and never passed from the client, of course. From 5bdd2c68a649ad97ea039cf926aa6fed5fbaeb63 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:21:39 -0800 Subject: [PATCH 10/26] Updates Azure Deploy to contain statevoices uri --- docs/HOWTO_AZURE_DEPLOY.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/HOWTO_AZURE_DEPLOY.md b/docs/HOWTO_AZURE_DEPLOY.md index 929de3a62..6ef0f881c 100644 --- a/docs/HOWTO_AZURE_DEPLOY.md +++ b/docs/HOWTO_AZURE_DEPLOY.md @@ -47,19 +47,19 @@ ## NODE.JS SETUP -It turns out we need those instructions for a different portion of the setup, but initially we should use the [development documentation from Spoke(https://github.com/MoveOnOrg/Spoke/blob/fc267eafbbc07d6d383ddab4bbc17810d7c75883/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md) +It turns out we need those instructions for a different portion of the setup, but initially we should use the [development documentation from Spoke(https://github.com/StateVoicesNational/Spoke/blob/fc267eafbbc07d6d383ddab4bbc17810d7c75883/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md) - Start at Step 1 for installing Node.js - Install Node: `sudo apt install -y nodejs` - DON’T DO THIS LINE: Install Yarn: sudo apt-get update && sudo apt-get install yarn - INSTEAD USE THE NPM PACKAGE MANAGER `sudo npm install -g yarn` - IF YOU ACCIDENTALLY USED THE LINE WE TOLD YOU NOT TO, HERE’S HOW TO REMOVE IT: `sudo apt remove yarn cmdtest` -- Clone down Spoke `git clone https://github.com/MoveOnOrg/Spoke.git` +- Clone down Spoke `git clone https://github.com/StateVoicesNational/Spoke.git` ## PACKAGE ### Spoke installation and package setup - CD into Spoke and - Run `yarn install` -- Begin the [Spoke Minimalist Deploy](https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO_MINIMALIST_DEPLOY.md) +- Begin the [Spoke Minimalist Deploy](https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_MINIMALIST_DEPLOY.md) ### If you run `yarn run prod-build-client` GAVE AN ERROR OF FAILING TO LOAD ‘/home/{username}/Spoke/webpack/config.js’ - Install Docker for preliminary database and cache setup, [linked here](https://docs.docker.com/engine/install/ubuntu/) @@ -68,7 +68,7 @@ It turns out we need those instructions for a different portion of the setup, bu - Turn on docker `sudo docker-compose up -d` - Permission Denied Sad Path: `sudo usermod -aG docker $USER` (theoretically making it so you don’t have to use sudo, but let’s come back to this) Yarn bug: `wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash -https://github.com/MoveOnOrg/Spoke/blob/main/docker-compose.yml` +https://github.com/StateVoicesNational/Spoke/blob/main/docker-compose.yml` - INITIAL YARN VERSION 1.22.17 - `export NVM_DIR="$HOME/.nvm"` - command `-v nvm` @@ -98,12 +98,12 @@ YARN VERSION IS: - Something set up by default within the Docker container. It sets up a Redis instance. - We’re going to deploy redis separately within the server. - Since we’ve already broken the database option out of the Docker File. -- But need to look for [Azure Cache for Redis instructions] (https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO_CONNECT_WITH_REDIS.md) +- But need to look for [Azure Cache for Redis instructions] (https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_CONNECT_WITH_REDIS.md) ## Install Postgres - In our documentation there is some information for setting this up. - The way we set it up is that we have a different database set in Azure and then connected within the container of your Azure project. -- More [expanded Docker descriptions](https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO_USE_POSTGRESQL.md) if people who are doing this wanted to go that route +- More [expanded Docker descriptions](https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_USE_POSTGRESQL.md) if people who are doing this wanted to go that route - Configure environment variables - Start sticking in the variables you actually want in the environment variable file. - SUPRESS_SELF_INVITE=1 From 5db2bac83c348b5af85c919d41c579f75f0cc5bb Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:22:20 -0800 Subject: [PATCH 11/26] Updates how to buy numbers to contain sv uri --- docs/HOWTO_BUY_NUMBERS_IN_SPOKE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/HOWTO_BUY_NUMBERS_IN_SPOKE.md b/docs/HOWTO_BUY_NUMBERS_IN_SPOKE.md index 36e5122a1..8b2cfbf72 100644 --- a/docs/HOWTO_BUY_NUMBERS_IN_SPOKE.md +++ b/docs/HOWTO_BUY_NUMBERS_IN_SPOKE.md @@ -27,7 +27,7 @@ This guide assumes you already have twilio set up with Spoke. If you don't, check out our guide on [integrating Twilio](HOWTO_INTEGRATE_TWILIO.md). -If you are comfortable using the Linux command line, and/or will be buying many numbers across many area codes, you should take a look at the [switchboard-twilio tool](https://github.com/MoveOnOrg/switchboard-twilio) which is here to help you buy in higher quantities. +If you are comfortable using the Linux command line, and/or will be buying many numbers across many area codes, you should take a look at the [switchboard-twilio tool](https://github.com/StateVoicesNational/switchboard-twilio) which is here to help you buy in higher quantities. 1. Go to the “Programmable SMS Dashboard” in Twilio ![programmable sms menu](images/twilio_number_buying_guide/programmable_sms_menu.png "Programmable SMS Menu") From 471208dcbb5b5426e25bb7775420330e24ea509f Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:28:56 -0800 Subject: [PATCH 12/26] Updates code review document uri's to sv --- docs/HOWTO_CODE_REVIEW.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/HOWTO_CODE_REVIEW.md b/docs/HOWTO_CODE_REVIEW.md index 50eb4dd65..c703edd16 100644 --- a/docs/HOWTO_CODE_REVIEW.md +++ b/docs/HOWTO_CODE_REVIEW.md @@ -1,5 +1,5 @@ # How to Code Review -Thank you for stepping up to code review changes for Spoke! Check out [our developer docs](https://moveonorg.github.io/Spoke/#/EXPLANATION-development-guidelines) for more information about how we write code. +Thank you for stepping up to code review changes for Spoke! Check out [our developer docs](https://statevoicesnational.github.io/Spoke/#/EXPLANATION-development-guidelines) for more information about how we write code. ## Pre-Review - Put your mentor hat on — be respectful and gentle — the Spoke project encourages contributions from beginner-developers, and we want to make their early experiences with open-source contributions as positive as possible. We have a [Code of Conduct](../CODE_OF_CONDUCT.md) that we expect all members of the community to follow, and is especially important in the position of being a reviewer. @@ -25,7 +25,7 @@ Thank you for stepping up to code review changes for Spoke! Check out [our devel ## Review Completion -This section only applies to [core contributors](https://github.com/MoveOnOrg/Spoke/wiki/Spoke-Access-Groups#spoke-core-contributors). At this time, only core contributors can approve or request changes on a PR and only members of [Spoke access groups](https://github.com/MoveOnOrg/Spoke/wiki/Spoke-Access-Groups) can label issues and PRs. +This section only applies to [core contributors](https://github.com/StateVoicesNational/Spoke/wiki/Spoke-Access-Groups#spoke-core-contributors). At this time, only core contributors can approve or request changes on a PR and only members of [Spoke access groups](https://github.com/StateVoicesNational/Spoke/wiki/Spoke-Access-Groups) can label issues and PRs. - Mark the review as either “Approved” or “Request Changes” based on whether you found characteristics that should block it or not. /All comments of type #1 in this section are blocking, and all comments of type #2 are not blocking. From a7a584d619ed3091061076537c5d6379260e4d3a Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:31:17 -0800 Subject: [PATCH 13/26] Updates dev local set up to contain sv uri --- docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md b/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md index b06da541d..4383de449 100644 --- a/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md +++ b/docs/HOWTO_DEVELOPMENT_LOCAL_SETUP.md @@ -1,7 +1,7 @@ ## Getting started --- -### [Repository](https://github.com/MoveOnOrg/Spoke) +### [Repository](https://github.com/StateVoicesNational/Spoke) 1. If you have not already, Fork this repo then clone your forked copy. Then future pull requests can be made from your repo to Spoke. ``` git clone @@ -14,7 +14,7 @@ cd spoke 3. You may use this opportunity to set the remote upstream to spoke's repo for future fetches. ``` -git remote add upstream https://github.com/MoveOnOrg/Spoke.git +git remote add upstream https://github.com/StateVoicesNational/Spoke.git ``` - you can check that this is configured correctly to push to the origin and fetch from spoke's repo. ``` @@ -26,7 +26,7 @@ git remote add upstream https://github.com/MoveOnOrg/Spoke.git --- ### Downloading -1. Install the Node version listed in `.nvmrc`. This can also be found here:[.nvmrc](https://github.com/MoveOnOrg/Spoke/blob/main/.nvmrc). +1. Install the Node version listed in `.nvmrc`. This can also be found here:[.nvmrc](https://github.com/StateVoicesNational/Spoke/blob/main/.nvmrc). From the spoke directory: ``` nvm install From ac1126d38601dcb242b9bfe869c2b5f801269700 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:32:00 -0800 Subject: [PATCH 14/26] Updates heroku deployment to have sv uri --- docs/HOWTO_HEROKU_DEPLOY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/HOWTO_HEROKU_DEPLOY.md b/docs/HOWTO_HEROKU_DEPLOY.md index cdd002217..d1b7615a8 100644 --- a/docs/HOWTO_HEROKU_DEPLOY.md +++ b/docs/HOWTO_HEROKU_DEPLOY.md @@ -66,7 +66,7 @@ In order to export data from campaigns (such as contacts' responses to questions ## Upgrading an existing Heroku app There are two ways to do this, the first way will use the Heroku web dashboard and the second will use the terminal. -**Regardless of which method you choose, you should not deploy a version of Spoke without reading the [release notes](https://github.com/MoveOnOrg/Spoke/blob/main/docs/RELEASE_NOTES.md) in case there are any steps listed in "Deploy Steps" for that release** +**Regardless of which method you choose, you should not deploy a version of Spoke without reading the [release notes](https://github.com/StateVoicesNational/Spoke/blob/main/docs/RELEASE_NOTES.md) in case there are any steps listed in "Deploy Steps" for that release** Some releases require database maintenance in order to work properly. **Method 1: The Dashboard Deploy Menu** From d1d6a5343e78fffa8706032e63831855f2f3bfec Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:32:31 -0800 Subject: [PATCH 15/26] Updates zapier documentation to point to sv uri --- docs/HOWTO_INTEGRATE_WITH_ZAPIER.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/HOWTO_INTEGRATE_WITH_ZAPIER.md b/docs/HOWTO_INTEGRATE_WITH_ZAPIER.md index 2bc8e3919..6fe515f50 100644 --- a/docs/HOWTO_INTEGRATE_WITH_ZAPIER.md +++ b/docs/HOWTO_INTEGRATE_WITH_ZAPIER.md @@ -187,7 +187,7 @@ An example payload for questionResponse updates is below. "id": 60, "organization_id": 1, "title": "Test Campaign for PR 1995", - "description": "https://github.com/MoveOnOrg/Spoke/pull/1995", + "description": "https://github.com/StateVoicesNational/Spoke/pull/1995", "is_started": true, "due_by": "2021-08-17T00:00:00.000Z", "created_at": "2021-08-14T00:34:57.590Z", From 677e7881312e3ea996d632b2f83b14a450d487a5 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:34:28 -0800 Subject: [PATCH 16/26] Updates twilio amazon set up doc with sv uri --- docs/HOWTO_setup_twilio_amazon_SQS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/HOWTO_setup_twilio_amazon_SQS.md b/docs/HOWTO_setup_twilio_amazon_SQS.md index d9d0dfb0f..e2dd231e5 100644 --- a/docs/HOWTO_setup_twilio_amazon_SQS.md +++ b/docs/HOWTO_setup_twilio_amazon_SQS.md @@ -6,7 +6,7 @@ If your Spoke application is down/not-responding, then Spoke doesn't lose messag In this scenario, we do NOT automate it, but when service is restored, we can manually run the trigger and load in the sqs messages from Twilio without having lost any incoming messages. * Due to an existing bug, we DO NOT recommend scheduling the following job yet: - recurring Lambda (technically CloudWatch) trigger enabled to reguarly look for incoming messages: -https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO_DEPLOYING_AWS_LAMBDA.md#setting-up-scheduled-jobs +https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_DEPLOYING_AWS_LAMBDA.md#setting-up-scheduled-jobs ### Instructions Below for Set Up * Follow the instructions in this link [Instructions for Set Up on Twilio.com] (https://www.twilio.com/blog/2017/07/handling-high-volume-inbound-sms-and-webhooks-with-twilio-functions-and-amazon-sqs.html) From 81436d8ca6831d8bcff1d0c2c775aeeb178c80ca Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:35:44 -0800 Subject: [PATCH 17/26] Updates extending spoke doc to contain sv uri --- docs/HOWTO-extend-spoke.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/HOWTO-extend-spoke.md b/docs/HOWTO-extend-spoke.md index 5bb87f98f..6b4ccd7a0 100644 --- a/docs/HOWTO-extend-spoke.md +++ b/docs/HOWTO-extend-spoke.md @@ -28,13 +28,13 @@ can be enabled for only particular organizations. Some examples help: ``` The first enables two action handlers: `ngpvan-action`, `zapier-action` which are in -the [src/extensions/action-handlers](https://github.com/MoveOnOrg/Spoke/tree/main/src/extensions/action-handlers) +the [src/extensions/action-handlers](https://github.com/StateVoicesNational/Spoke/tree/main/src/extensions/action-handlers) directory. Both of these require additional environment variables to function, so make sure to read the code or documentation on particular extensions. The second enables *and restricts* the system to three texter sideboxes. Texter sideboxes, by default, have all system-included sideboxes on (though they are configurable in the Organization's settings and -per-campaign). They are each in the [src/extensions/texter-sideboxes](https://github.com/MoveOnOrg/Spoke/tree/main/src/extensions/texter-sideboxes) directory. +per-campaign). They are each in the [src/extensions/texter-sideboxes](https://github.com/StateVoicesNational/Spoke/tree/main/src/extensions/texter-sideboxes) directory. Here are supported extension types with brief descriptions: @@ -112,8 +112,8 @@ We recommend production instances use Auth0 for login by default. Additionally "local login" is configurable so Auth0 doesn't need to be setup. There is also a way to enable login through Slack. All of these implementations are *mostly* implemented in two files: -* [src/server/auth-passport.js](https://github.com/MoveOnOrg/Spoke/tree/main/src/server/auth-passport.js) -* [src/components/Login.jsx](https://github.com/MoveOnOrg/Spoke/tree/main/src/components/Login.jsx) +* [src/server/auth-passport.js](https://github.com/StateVoicesNational/Spoke/tree/main/src/server/auth-passport.js) +* [src/components/Login.jsx](https://github.com/StateVoicesNational/Spoke/tree/main/src/components/Login.jsx) However there are a couple places here or there that have hooks -- at least for more sophisticated integrations. Ideally we will consolidate these hooks into a src/extensions/login/ in the future. From 20e6b920872e6d4f15c2375325e4490e3967e543 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:37:28 -0800 Subject: [PATCH 18/26] Updates how to scale spoke document to contain sv uri --- docs/HOWTO-scale-spoke-plan.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/HOWTO-scale-spoke-plan.md b/docs/HOWTO-scale-spoke-plan.md index aadac344a..e5dbb1563 100644 --- a/docs/HOWTO-scale-spoke-plan.md +++ b/docs/HOWTO-scale-spoke-plan.md @@ -35,10 +35,10 @@ messages initially, and then handling replies and knowing when there are new rep ### Client-side optimization -Currently in [containers/AssignmentTexterContact.jsx](https://github.com/MoveOnOrg/Spoke/blob/main/src/containers/AssignmentTexterContact.jsx), +Currently in [containers/AssignmentTexterContact.jsx](https://github.com/StateVoicesNational/Spoke/blob/main/src/containers/AssignmentTexterContact.jsx), each contact screen loads an individual contact's information and then calls an api again for the next screen. This is incredibly inefficient and instead an asynchronous process in the -[containers/TexterTodo.jsx](https://github.com/MoveOnOrg/Spoke/blob/main/src/containers/TexterTodo.jsx) component should gather +[containers/TexterTodo.jsx](https://github.com/StateVoicesNational/Spoke/blob/main/src/containers/TexterTodo.jsx) component should gather X contacts in sufficient quantity to feed it to the `AssignmentTexterContact.jsx` component as fast as it processes the data. ### Server-side optimization @@ -140,12 +140,12 @@ Here is the (proposed) structure of data in Redis to support the above data need 2. For each contact, load `contactinfo--` * Code points: - * Backend code is in [server/api/assignment.js](https://github.com/MoveOnOrg/Spoke/blob/main/src/server/api/assignment.js#L107) + * Backend code is in [server/api/assignment.js](https://github.com/StateVoicesNational/Spoke/blob/main/src/server/api/assignment.js#L107) * Frontend calls currently live in two places - * [containers/TexterTodo.jsx](https://github.com/MoveOnOrg/Spoke/blob/main/src/containers/TexterTodo.jsx#L67) + * [containers/TexterTodo.jsx](https://github.com/StateVoicesNational/Spoke/blob/main/src/containers/TexterTodo.jsx#L67) where it all _should_ live, so we don't need to make an API call per-contact -- and can load many at once - * [containers/AssignmentTexterContact.jsx](https://github.com/MoveOnOrg/Spoke/blob/main/src/containers/AssignmentTexterContact.jsx#L893-L933) - * There is a [toy/WIP branch to move this](https://github.com/MoveOnOrg/Spoke/pull/783) + * [containers/AssignmentTexterContact.jsx](https://github.com/StateVoicesNational/Spoke/blob/main/src/containers/AssignmentTexterContact.jsx#L893-L933) + * There is a [toy/WIP branch to move this](https://github.com/StateVoicesNational/Spoke/pull/783) ##### incomingMessage @@ -155,21 +155,21 @@ Here is the (proposed) structure of data in Redis to support the above data need 4. HSET `replies-` (using lookup) * Code points: - * [twilio backend codepoint](https://github.com/MoveOnOrg/Spoke/blob/main/src/server/extensions/service-vendors/twilio.js#L203) + * [twilio backend codepoint](https://github.com/StateVoicesNational/Spoke/blob/main/src/server/extensions/service-vendors/twilio.js#L203) * note that is called both from server/index.js and workers/jobs.js * In theory we can/should do this generically over services, but pending_message_part complicates this a bit much. A 'middle road' approach would also implement this in server/api/lib/fakeservice.js -##### sendMessage - [backend code](https://github.com/MoveOnOrg/Spoke/blob/main/src/server/api/schema.js#L855) - [frontend code](https://github.com/MoveOnOrg/Spoke/blob/main/src/containers/AssignmentTexterContact.jsx#L993) +##### sendMessage - [backend code](https://github.com/StateVoicesNational/Spoke/blob/main/src/server/api/schema.js#L855) - [frontend code](https://github.com/StateVoicesNational/Spoke/blob/main/src/containers/AssignmentTexterContact.jsx#L993) 1. If status is needsMessage then confirm that it's the first item in `conversation--`, otherwise, do not (re)send message. 2. LPUSH `conversation--` 3. LPUSH `message-write-queue` -##### updateQuestionResponses - [backend code](https://github.com/MoveOnOrg/Spoke/blob/main/src/server/api/schema.js#L971) - [frontend code](https://github.com/MoveOnOrg/Spoke/blob/main/src/containers/AssignmentTexterContact.jsx#L980) +##### updateQuestionResponses - [backend code](https://github.com/StateVoicesNational/Spoke/blob/main/src/server/api/schema.js#L971) - [frontend code](https://github.com/StateVoicesNational/Spoke/blob/main/src/containers/AssignmentTexterContact.jsx#L980) 1. HSET `contactinfo--` -##### updateAssignments - backend code: [1](https://github.com/MoveOnOrg/Spoke/blob/main/src/server/api/schema.js#L155-L187), [2](https://github.com/MoveOnOrg/Spoke/blob/main/src/workers/jobs.js#L364) - [frontend code](https://github.com/MoveOnOrg/Spoke/blob/main/src/components/CampaignTextersForm.jsx#L122) +##### updateAssignments - backend code: [1](https://github.com/StateVoicesNational/Spoke/blob/main/src/server/api/schema.js#L155-L187), [2](https://github.com/StateVoicesNational/Spoke/blob/main/src/workers/jobs.js#L364) - [frontend code](https://github.com/StateVoicesNational/Spoke/blob/main/src/components/CampaignTextersForm.jsx#L122) 1. Either LPUSH `newassignments--` OR `dynamicassignments-` From 9f86702223dd5969d787fd53c6a4dbaff9fff039 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:38:51 -0800 Subject: [PATCH 19/26] Texter sideboxes doc updated to contain sv uri --- docs/HOWTO-use-texter-sideboxes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/HOWTO-use-texter-sideboxes.md b/docs/HOWTO-use-texter-sideboxes.md index 11cbcbd6c..3c5442601 100644 --- a/docs/HOWTO-use-texter-sideboxes.md +++ b/docs/HOWTO-use-texter-sideboxes.md @@ -71,7 +71,7 @@ Enabled this hides contact images and video sent back to texters in replies whic ### mobilize-event-shifter -Mobilize (America) event scheduling. User clicks the button and the MOBILIZE_EVENT_SHIFTER_URL opens up in a Dialog as an iframe, which is meant to be an organization's main event list. If contact has a zip, it is included to filter the mobilize events. If the campaign contacts include an event_id column in the CSV, or provides a default event id for the campaign/organization, it adds a tab for the mobilize event in an iframe and prefills the first name, last name, cell, email, and zip into the fields via the query string. Texter can then switch between tabs of the specific event or the general event list. [Pull request with screenshots](https://github.com/MoveOnOrg/Spoke/pull/1812) +Mobilize (America) event scheduling. User clicks the button and the MOBILIZE_EVENT_SHIFTER_URL opens up in a Dialog as an iframe, which is meant to be an organization's main event list. If contact has a zip, it is included to filter the mobilize events. If the campaign contacts include an event_id column in the CSV, or provides a default event id for the campaign/organization, it adds a tab for the mobilize event in an iframe and prefills the first name, last name, cell, email, and zip into the fields via the query string. Texter can then switch between tabs of the specific event or the general event list. [Pull request with screenshots](https://github.com/StateVoicesNational/Spoke/pull/1812) Note: as of 3/1/21 you will need to reach out to Mobilize support to have them enable embedding for your dashboard(s), otherwise you'll probably get the error `Refused to display '{MOBILIZE_EVENT_SHIFTER_URL}' in a frame because it set 'X-Frame-Options' to 'sameorigin'.` @@ -106,7 +106,7 @@ handle replies. ### texter-feedback Must be enabled for Admins to be able to review contacts' replies and give feedback. To customize the -variables feedback is given dump valid JSON blob based on this [Working Families Party example](https://github.com/MoveOnOrg/Spoke/blob/stage-main-10-c/src/extensions/texter-sideboxes/texter-feedback/config-wfp-example.json) +variables feedback is given dump valid JSON blob based on this [Working Families Party example](https://github.com/StateVoicesNational/Spoke/blob/stage-main-10-c/src/extensions/texter-sideboxes/texter-feedback/config-wfp-example.json) into the custom field. Note that invalid JSON will break Spoke! ### contact-notes From 04e00b080cd3dc9015e47af4ef96672b3d2c9cc9 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:40:01 -0800 Subject: [PATCH 20/26] Updates best practices doc to contain sv uri --- docs/REFERENCE-best-practices-conformance-messaging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/REFERENCE-best-practices-conformance-messaging.md b/docs/REFERENCE-best-practices-conformance-messaging.md index 80b6b0a4b..4ddcb4eaa 100644 --- a/docs/REFERENCE-best-practices-conformance-messaging.md +++ b/docs/REFERENCE-best-practices-conformance-messaging.md @@ -70,6 +70,6 @@ While texters should be able to send messages they desire, administrators can ch ## Blocking inappropriate texter content Some language should not be possible to be texted out. This includes racial and misogynistic slurs, for example. Not on by default, but we recommend to consider enabling MESSAGE_HANDLERS=profanity-tagger along with PROFANITY_TEXTER_BLOCK_SEND=1: -* PROFANITY_TEXTER_REGEX_BASE64 controls which phrases are blocked with a regular expression. You can see the default (encoded) in the [Spoke profanity-tagger code base](https://github.com/MoveOnOrg/Spoke/blob/main/src/extensions/message-handlers/profanity-tagger/index.js). Take care to thoroughly test your regular expression before deploying a change. +* PROFANITY_TEXTER_REGEX_BASE64 controls which phrases are blocked with a regular expression. You can see the default (encoded) in the [Spoke profanity-tagger code base](https://github.com/StateVoicesNational/Spoke/blob/main/src/extensions/message-handlers/profanity-tagger/index.js). Take care to thoroughly test your regular expression before deploying a change. From 1177820e03947dbaec885f724c43d178332fdd99 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:40:41 -0800 Subject: [PATCH 21/26] Updates read me doc to contain sv uri --- docs/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/README.md b/docs/README.md index ba1ace39a..b985336df 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,12 +1,12 @@ # Spoke Documentation Hub -Welcome to the Spoke documentation hub! This is the documentation micro-site for [Spoke's docs folder](https://github.com/MoveOnOrg/Spoke/tree/main/docs) to make the docs more readable and user-friendly. +Welcome to the Spoke documentation hub! This is the documentation micro-site for [Spoke's docs folder](https://github.com/StateVoicesNational/Spoke/tree/main/docs) to make the docs more readable and user-friendly. Spoke is an open source text-distribution tool for organizations to mobilize supporters and members into action. Spoke allows you to upload phone numbers, customize scripts and assign volunteers to communicate with supporters while allowing organizations to manage the process. ## How to contribute to the Spoke docs -[Any issues tagged with the C-documentation tag](https://github.com/MoveOnOrg/Spoke/issues?q=is%3Aopen+is%3Aissue+label%3AC-documentation) are feature requests for docs that we'd love for you to add! We also have a sidebar section that reads "Outlines of docs we wish we had - contributors welcome!" that we'd love for folks to flesh out. +[Any issues tagged with the C-documentation tag](https://github.com/StateVoicesNational/Spoke/issues?q=is%3Aopen+is%3Aissue+label%3AC-documentation) are feature requests for docs that we'd love for you to add! We also have a sidebar section that reads "Outlines of docs we wish we had - contributors welcome!" that we'd love for folks to flesh out. -You can add a doc by making a pull request to [Spoke's repo](https://github.com/MoveOnOrg/Spoke) with changes to the doc. If you're adding a new doc, please add it to the [sidebar.md file](_sidebar.md) to make sure it shows up in the doc table of contents. +You can add a doc by making a pull request to [Spoke's repo](https://github.com/StateVoicesNational/Spoke) with changes to the doc. If you're adding a new doc, please add it to the [sidebar.md file](_sidebar.md) to make sure it shows up in the doc table of contents. We also accept PRs that want to reorder docs in the table of contents to help with readability! \ No newline at end of file From a9ba9100691d0df987011ca398c1013ff3b2bf77 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 09:57:57 -0800 Subject: [PATCH 22/26] Updates env variable ref doc to have sv uri --- docs/REFERENCE-environment_variables.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/REFERENCE-environment_variables.md b/docs/REFERENCE-environment_variables.md index ac02d4c57..994544d15 100644 --- a/docs/REFERENCE-environment_variables.md +++ b/docs/REFERENCE-environment_variables.md @@ -1,6 +1,6 @@ | Variable | Purpose | | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ACTION_HANDLERS | Optional Action Handlers, listed in [extensions/action-handlers](https://github.com/MoveOnOrg/Spoke/tree/main/src/extensions/action-handlers). _`ngpvan-action` required for VAN integration_ | +| ACTION_HANDLERS | Optional Action Handlers, listed in [extensions/action-handlers](https://github.com/StateVoicesNational/Spoke/tree/main/src/extensions/action-handlers). _`ngpvan-action` required for VAN integration_ | | ALLOW_SEND_ALL | Allow usage of the ["Bulk Send" feature](HOWTO-use_bulk_sending.md). | | APOLLO_OPTICS_KEY | A key for Apollo tracer. | | ASSETS_DIR | Directory path where front-end packaged JavaScript is saved and loaded. _Required_. | @@ -41,7 +41,7 @@ | DOWNTIME_NO_DB | On AWS Lambda this blocks the site from loading the app at all and swaps out a system that redirects users to /downtime. This is useful for DB maintenance. For non-Lambda environments, just run the src/server/downtime app instead of src/server/index default app | | DOWNTIME_TEXTER | Setting DOWNTIME_TEXTER to a text message (without quotes, please) will give the message as a text to texters when they arrive on the site, but the admin pages will still be accessible. This could be useful if you want to stop new texters from landing on the site and texting, while you debug things. | | DST_REFERENCE_TIMEZONE | Timezone to use to determine whether DST is in effect. If it's DST in this timezone, we assume it's DST everywhere. _Default_: "US/Eastern". (The default will work for any campaign in the US. For example, if the campaign is in Australia, use "Australia/Sydney" or some other timezone in Australia. Note that DST is opposite in the northern and souther hemispheres.) | -| CONTACT_LOADERS | Optional contact loaders in [extensions/contact-loaders](https://github.com/MoveOnOrg/Spoke/tree/main/src/extensions/contact-loaders) _`ngpvan` Required for VAN integration_ | +| CONTACT_LOADERS | Optional contact loaders in [extensions/contact-loaders](https://github.com/StateVoicesNational/Spoke/tree/main/src/extensions/contact-loaders) _`ngpvan` Required for VAN integration_ | | EMAIL_FROM | Email from address. _Required to send email from either Mailgun **or** a custom SMTP server_. | | EMAIL_HOST | Email server host. _Required for custom SMTP server usage_. | | EMAIL_HOST_PASSWORD | Email server password. _Required for custom SMTP server usage_. | @@ -67,7 +67,7 @@ | MAX_MESSAGE_LENGTH | The maximum size for a message that a texter can send. When you send a SMS message over 160 characters the message will be split, so you might want to set this as 160 or less if you have a high SMS-only target demographic. _Default_: 99999 | | MAX_TEXTERS_PER_CAMPAIGN | Maximum texters that can join a campaign before joining with a dynamic assignment campaign link will block the texter from joining with a message that the campaign is full. | | MOBILIZE_EVENT_SHIFTER_URL | For the texter sidebox, mobilize-event-shifter. This should be the base mobilize link for the organization, i.e. https://www.mobilize.us/{org_name}. Can be overridden in the campaign/organization admin settings. | -| MESSAGE_HANDLERS | Optional message handlers, listed in [extensions/message-handlers](https://github.com/MoveOnOrg/Spoke/tree/main/src/extensions/message-handlers). _`ngpvan` required for VAN integration_ | +| MESSAGE_HANDLERS | Optional message handlers, listed in [extensions/message-handlers](https://github.com/StateVoicesNational/Spoke/tree/main/src/extensions/message-handlers). _`ngpvan` required for VAN integration_ | | MULTI_TENANT | Set to true if instance can host more than one organization. | | NEXMO_API_KEY | Nexmo API key. Required if using Nexmo. | | NEXMO_API_SECRET | Nexmo API secret. Required if using Nexmo. | @@ -91,7 +91,7 @@ | PGSSLMODE | Postgres SSL mode. Due to a [Knex bug](https://github.com/tgriesser/knex/issues/852), this environment variable must be used in order to specify the SSL mode directly in the driver. This must be set to `PGSSLMODE=require` to work with Heroku databases above the free tier (see [Heroku Postgres & SSL](https://devcenter.heroku.com/articles/heroku-postgresql#heroku-postgres-ssl)). | | PHONE_NUMBER_COUNTRY | Country code for phone number formatting. Does _not_ default to US. If left blank, phone numbers you upload must have a country code. | | PORT | Port for Heroku servers. | -| REDIS_URL | This enables caching using the [`url` option in redis library](https://github.com/NodeRedis/node_redis#options-object-properties). This is an area of active development. More can be seen at [server/models/cacheable_queries/README](../src/server/models/cacheable_queries/README.md) and the [project board](https://github.com/MoveOnOrg/Spoke/projects/4) | +| REDIS_URL | This enables caching using the [`url` option in redis library](https://github.com/NodeRedis/node_redis#options-object-properties). This is an area of active development. More can be seen at [server/models/cacheable_queries/README](../src/server/models/cacheable_queries/README.md) and the [project board](https://github.com/StateVoicesNational/Spoke/projects/4) | | REVERE_SQS_URL | SQS URL to process outgoing Revere SMS Messages. | | REVERE_LIST_ID | Revere List to add user to. | | REVERE_NEW_SUBSCRIBER_MOBILE_FLOW | Revere mobile flow to trigger upon recording action. | @@ -123,5 +123,5 @@ | WEBPACK_PORT | Port for Webpack development server. _Defaut_: 3000. | | ZAPIER_WEBHOOK_URL | URL where a payload of tag data will be POSTed to upon updating tags (**not limited to Zapier**; can be any URL) | | ZAPIER_ACTION_URL | URL where a payload of action data will be POSTed to upon an action being taken (**not limited to Zapier**; can be any URL) | -| ZAPIER_CONFIG_OBJECT | Optional. A configuration object for zapier-action that specifies where to push payloads for specific responses/answers to questions. See [HOWTO_INTEGRATE_WITH_ZAPIER](https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO_INTEGRATE_WITH_ZAPIER.md) for details on this object's schema and additional guidance on Zapier (and generic HTTP endpoint) integration. | +| ZAPIER_CONFIG_OBJECT | Optional. A configuration object for zapier-action that specifies where to push payloads for specific responses/answers to questions. See [HOWTO_INTEGRATE_WITH_ZAPIER](https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_INTEGRATE_WITH_ZAPIER.md) for details on this object's schema and additional guidance on Zapier (and generic HTTP endpoint) integration. | | ZAPIER_TIMEOUT_MS | Optional. The timeout, in milliseconds, for POSTs made by the zapier-action to configured URLs. | From 96b6bf3f3138753f922fea65dfcaa9dd8bb0082f Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 10:01:49 -0800 Subject: [PATCH 23/26] Updates all release notes uris to point to sv --- docs/RELEASE_NOTES.md | 46 +++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/docs/RELEASE_NOTES.md b/docs/RELEASE_NOTES.md index 336a93eb1..fd5479663 100644 --- a/docs/RELEASE_NOTES.md +++ b/docs/RELEASE_NOTES.md @@ -201,7 +201,7 @@ Based on work from Larry Person, there is a large refactor of "service-vendors" #### Database upgrades * This is a major release and includes a schema change. -* For small instances simply leave/set SUPPRESS_MIGRATIONS="" or for [AWS Lambda, see the db migration instructions](https://moveonorg.github.io/Spoke/#/HOWTO_DEPLOYING_AWS_LAMBDA?id=migrating-the-database). +* For small instances simply leave/set SUPPRESS_MIGRATIONS="" or for [AWS Lambda, see the db migration instructions](https://statevoicesnational.github.io/Spoke/#/HOWTO_DEPLOYING_AWS_LAMBDA?id=migrating-the-database). * If you are running Spoke on Heroku and updating to version 11 or later, either remove SUPPRESS_MIGRATIONS="" if it is set in config, *or* set SUPPRESS_MIGRATIONS=false * For instances with a large `message` table, we recommend setting NO_INDEX_CHANGES=1 before running the migration, and then manually running two commands: * `CREATE INDEX CONCURRENTLY cell_msgsvc_user_number_idx ON message (contact_number, messageservice_sid, user_number);` @@ -218,7 +218,7 @@ Instead of running a single 'claudia' command, You will need to tweak two things 1. `ASSETS_DIR=./build/client/assets ASSETS_MAP_FILE=assets.json NODE_ENV=production yarn prod-build-client` 2. and then for your `claudia update` command you need to include your usual command line parameters and ADD `--no-optional-dependencies` -These steps remove the client-side libraries from the server-side build, which is necessary now that the client-side libraries are too large to 'fit' into an AWS Lambda server deploy file. This is documented in the [AWS setup/deploy steps](https://github.com/MoveOnOrg/Spoke/compare/main...stage-main-11-0#diff-548e8f704ad84645a42f2efaf1332490f6844d0a0dd50e9ac6b931c198d213f3) +These steps remove the client-side libraries from the server-side build, which is necessary now that the client-side libraries are too large to 'fit' into an AWS Lambda server deploy file. This is documented in the [AWS setup/deploy steps](https://github.com/StateVoicesNational/Spoke/compare/main...stage-main-11-0#diff-548e8f704ad84645a42f2efaf1332490f6844d0a0dd50e9ac6b931c198d213f3) #### Changes for Experimental Per-campaign phone numbers/message services @@ -273,7 +273,7 @@ This is a minor point release, and so has no database migrations or other requir * Allow passing of custom fields to mobilecommons-signup action handler (config w/ UMC_FIELDS) * UI: show contact loader load-info in campaign edit page after campaign starts (e.g. to see name of csv uploaded) -See links and notes from the [10.1 pull request](https://github.com/MoveOnOrg/Spoke/pull/1942) for a list of all changes that were included. +See links and notes from the [10.1 pull request](https://github.com/StateVoicesNational/Spoke/pull/1942) for a list of all changes that were included. ### Appreciations * [codygordon](https://github.com/codygordon), [Frydafly](https://github.com/Frydafly), [lperson](https://github.com/lperson), [marzvrover](https://github.com/marzvrover), [schuyler1d](https://github.com/schuyler1d), [stefanhayden](https://github.com/stefanhayden) @@ -320,7 +320,7 @@ As the first release post-election, this mostly gathered together fixes and impr ## Bugfixes and Minor featuers -See links and notes from the [10.0 pull request](https://github.com/MoveOnOrg/Spoke/pull/1900) for a list of all changes that were included. +See links and notes from the [10.0 pull request](https://github.com/StateVoicesNational/Spoke/pull/1900) for a list of all changes that were included. ### Appreciations @@ -348,8 +348,8 @@ during QA and review and to evaluate the release 'at scale'. Without this final to release readiness. However, we want to track these improvements, so we will be maintaining two 'experimental' PRs -- one more conservative -with small changes and mostly bug fixes: [stage-main-postelection2020-stable](https://github.com/MoveOnOrg/Spoke/pull/1830). -The other with larger changes but riskier to deploy before the election: [stage-main-postelection2020-unstable](https://github.com/MoveOnOrg/Spoke/pull/1831). If a hosting partner steps up to +with small changes and mostly bug fixes: [stage-main-postelection2020-stable](https://github.com/StateVoicesNational/Spoke/pull/1830). +The other with larger changes but riskier to deploy before the election: [stage-main-postelection2020-unstable](https://github.com/StateVoicesNational/Spoke/pull/1831). If a hosting partner steps up to run one of these at any time and affirms its stability, we will mark that. Additionally, in the conservative PR, we will link to specific PRs that if you run into a particular bug in production you can cherry-pick that PR to fix that issue. @@ -394,7 +394,7 @@ Thanks to [jeffm2001](https://github.com/jeffm2001) and [schuyler1d](https://git _September 2020:_ Version 9.1 * Regression notice: When TWILIO_MULTI_ORG=1 is set but TWILIO_MESSAGE_CALLBACK_URL is not, /twilio-message-report - fails. There is a [fix](https://github.com/MoveOnOrg/Spoke/pull/1826) that is also available in 9.2 (above). + fails. There is a [fix](https://github.com/StateVoicesNational/Spoke/pull/1826) that is also available in 9.2 (above). ### New Features/Improvements - **New UI for adding organizations to your instance:** There is now a page only accessible for users with `is_superadmin` set for adding orgs in a Spoke instance. You can access this screen through the user menu under "superadmin tools." We've gated this feature to only users with that privilege to keep any roles you already have on your instances from suddenly gaining the ability to add orgs. You can only change a user's `is_superadmin` status with a direct DB query at this time. *The first user on new instances will be a superadmin by default now* @@ -495,7 +495,7 @@ _August 2020:_ Version 8.0 This is a major release and therefore requires a schema change which you can run before/during migration (either by leaving/disabling SUPPRESS_MIGRATIONS="" or for [AWS Lambda, see the db migration instructions](DEPLOYING_AWS_LAMBDA.md#migrating-the-database). Anything marked as experimental has not yet been tested on a production texting campaign. We're marking this as a major version update 8.0 because there are several backwards-incompatible changes that we believe are important and valuable. ### Backwards incompatible Changes -- **Dynamic Assignment is changing**: After a lot of feedback and some great inspiration from the [Warren Spoke](https://github.com/Elizabeth-Warren/Spoke) we're modifying dynamic assign. Texters will now request batch sizes instead of getting an endless stream of texts. The admin can customize the batch size and who is allowed to click request after their first batch. There is more documentation on this feature [here](https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO-use-dynamicassignment-batches.md).This feature is also optionally complemented by the new "release texts" feature which is mentioned under "New Features/Improvements" +- **Dynamic Assignment is changing**: After a lot of feedback and some great inspiration from the [Warren Spoke](https://github.com/Elizabeth-Warren/Spoke) we're modifying dynamic assign. Texters will now request batch sizes instead of getting an endless stream of texts. The admin can customize the batch size and who is allowed to click request after their first batch. There is more documentation on this feature [here](https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO-use-dynamicassignment-batches.md).This feature is also optionally complemented by the new "release texts" feature which is mentioned under "New Features/Improvements" - **Old Texter UI is _no longer supported_**: We removed the `DEPRECATED_TEXTERUI` env variable and the old Texter UI is officially phased out - **Texter Sideboxes are now off by default**: You now need to enable options in organization Settings tab (they previously were just automatically enabled from the variable) - If your previously set TEXTER_SIDEBOXES, then you must add `default-dynamicassignment` (and we recommend adding other new ones listed in new features) for dynamic assignment to work. @@ -504,10 +504,10 @@ This is a major release and therefore requires a schema change which you can run - For non-US or subscriber-only mode users ONLY -- if you enabled ALLOW_SEND_ALL=1 (if you did not, then DO not do this), then you'll need to check to enable that feature in the Settings panel of your organization (as a is_superadmin user) - Initial text messages are editable -- we recommend allowing the (default) TEXTER_SIDEBOXES= to include `default-editinitial` to make this option more muted. - the src/integrations/ directory is renamed src/extensions/ to indicate that it's not just integrations with 3rd parties but also components that extend the system itself (message-handlers, texter-sideboxes, dynamicassignment-batches, job-runners). If you added your own src/integrations/ items make sure they are moved, and relevant imports are changed. -- There is a small migration to the `campaign` table which needs to be run before/during migration (either by leaving/disabling SUPPRESS_MIGRATIONS="" or for [AWS Lambda, see the db migration instructions](https://github.com/MoveOnOrg/Spoke/blob/main/docs/DEPLOYING_AWS_LAMBDA.md#migrating-the-database) +- There is a small migration to the `campaign` table which needs to be run before/during migration (either by leaving/disabling SUPPRESS_MIGRATIONS="" or for [AWS Lambda, see the db migration instructions](https://github.com/StateVoicesNational/Spoke/blob/main/docs/DEPLOYING_AWS_LAMBDA.md#migrating-the-database) ### New Features/Improvements -- Use of Spoke is subject to legal restrictions which each organization should review and understand, including recent guidance from an FCC ruling. We recommend system administrators review the settings outlined [here](https://github.com/MoveOnOrg/Spoke/blob/main/docs/REFERENCE-best-practices-conformance-messaging.md) along with consulting your own legal advice. +- Use of Spoke is subject to legal restrictions which each organization should review and understand, including recent guidance from an FCC ruling. We recommend system administrators review the settings outlined [here](https://github.com/StateVoicesNational/Spoke/blob/main/docs/REFERENCE-best-practices-conformance-messaging.md) along with consulting your own legal advice. - **_Experimental_ Phone number management for campaigns**: A much requested feature for scaling past the 400 phone numbers limit. - turn this on with `EXPERIMENTAL_CAMPAIGN_NUMBERS` - **_Experimental_ Release Texts**: Dynamic Assignment will also include a way for texters to release texts! That way when a texter is done for the day they can release texts without admin needing to go in and reassign them. @@ -542,7 +542,7 @@ _July 2020:_ Release 7.1 is a testament to the community working together -- sev ### Significant for deployments: * After changing the texter send keyboard shortcut to Ctrl-X we have moved it (again) to Ctrl-Enter (to avoid conflict with OS 'cut' shortcuts) -* There is a small migration to the user table which needs to be run before/during migration (either by leaving/disabling SUPPRESS_MIGRATIONS="" or for [AWS Lambda, see the db migration instructions](https://github.com/MoveOnOrg/Spoke/blob/main/docs/DEPLOYING_AWS_LAMBDA.md#migrating-the-database) +* There is a small migration to the user table which needs to be run before/during migration (either by leaving/disabling SUPPRESS_MIGRATIONS="" or for [AWS Lambda, see the db migration instructions](https://github.com/StateVoicesNational/Spoke/blob/main/docs/DEPLOYING_AWS_LAMBDA.md#migrating-the-database) * If you are running on lambda, you might consider setting JOB_RUNNER="lambda-async" for better scaling/performance ### New Features @@ -592,7 +592,7 @@ We're marking this as a major version update: 7.0 because there are several back ### Improvements * There is now further support for VAN -- a robust action handler that can be enabled by adding `ACTION_HANDLERS=ngpvan-action` to your environment variables will enable this. -* We have a new framework for extending the Texter UI interface called ["sideboxes"](https://github.com/MoveOnOrg/Spoke/issues/1533). Enabled with environment variable TEXTER_SIDEBOXES which works similarly to action handlers, where it should be a comma separated list of enabled sideboxes. Developers can add sidebox functionality, and admins can set defaults in the organization Settings section and changes per-campaign -- enabling/disabling sideboxes. Two so-far are: +* We have a new framework for extending the Texter UI interface called ["sideboxes"](https://github.com/StateVoicesNational/Spoke/issues/1533). Enabled with environment variable TEXTER_SIDEBOXES which works similarly to action handlers, where it should be a comma separated list of enabled sideboxes. Developers can add sidebox functionality, and admins can set defaults in the organization Settings section and changes per-campaign -- enabling/disabling sideboxes. Two so-far are: * `contact-reference` which is a link the texter can click and/or share with an admin for direct access to that conversation later * `tag-contact` which if you have EXPERIMENTAL_TAGS=1 enabled and create tags, a texter will have an interface to mark them. They can then be filtered for in Message Review. @@ -607,13 +607,13 @@ We're marking this as a major version update: 7.0 because there are several back ### Bug fixes -There are too many bug fixes to mention -- [please see the full list of linked changes](https://github.com/MoveOnOrg/Spoke/pull/1623) +There are too many bug fixes to mention -- [please see the full list of linked changes](https://github.com/StateVoicesNational/Spoke/pull/1623) ### Deploy Steps: Instructions for migrating you database * Make sure SUPPRESS_MIGRATIONS="" (not 0!) in your environment -* If you're using AWS Lambda, check out the [deploy instructions here](https://github.com/MoveOnOrg/Spoke/blob/main/docs/DEPLOYING_AWS_LAMBDA.md#migrating-the-database) +* If you're using AWS Lambda, check out the [deploy instructions here](https://github.com/StateVoicesNational/Spoke/blob/main/docs/DEPLOYING_AWS_LAMBDA.md#migrating-the-database) ### Appreciations! @@ -688,12 +688,12 @@ Thanks to all the contributors part of this release including: ## v5.5 _May 2020:_ Version 5.5 - Campaign List Admin changes (@lperson, @schuyler1d) -- Twilio Auth per organization (@jeffm2001 ) -- Now if you enable TWILIO_MULTI_ORG environment variable, each organization can use a different Twilio account that they can setup in the Settings Admin tab. This also allows per-organization message services. There is more work coming to allow [message services per-campaign](https://github.com/MoveOnOrg/Spoke/issues/1495) and [in-app phone number management](https://github.com/MoveOnOrg/Spoke/issues/1518) +- Twilio Auth per organization (@jeffm2001 ) -- Now if you enable TWILIO_MULTI_ORG environment variable, each organization can use a different Twilio account that they can setup in the Settings Admin tab. This also allows per-organization message services. There is more work coming to allow [message services per-campaign](https://github.com/StateVoicesNational/Spoke/issues/1495) and [in-app phone number management](https://github.com/StateVoicesNational/Spoke/issues/1518) - This release has several developing features -- you might say it's a 'preview' release of things to come. You can turn on these features with environment variables - EXPERIMENTAL_TEXTERUI: After some amazing design work by @arena with multiple iterations and two user testing rounds by @ibrand, We are planning to make this the DEFAULT texter interface in the next Spoke release. We know that this has some challenges for current deployments -- updating documentation and training materials for texters. Just like you switch ON this new version in this release, for one release (and no more), we intend that you will be able to set a different environment variable in order to keep the old interface. That should allow you to control the switch to the new interface gracefully. - We put a lot of work into this interface to accomodate upcoming features, radically improve the mobile (and generally cross-screen support) and address some issues that regularly come up for texters. - Please send your experience reports in testing - - More context can be seen at [RFC: New Texter UI](https://github.com/MoveOnOrg/Spoke/pull/1522) + - More context can be seen at [RFC: New Texter UI](https://github.com/StateVoicesNational/Spoke/pull/1522) - EXPERIMENTAL_TAGS: Tagging users instead of just saving question responses is a very common request, and we have a great volunteer team developing these features. This first step is creating an admin interface to create the tags. There will be more to come, but you can preview and test this development by enabling the environment variable. Thanks to @aschneit and @filafb! (a cypress stub was also merged into main for e2e tests recently) @@ -796,7 +796,7 @@ Deploy Steps: **Instructions for migrating large database instances (>1million messages/contacts)** 1. Make sure SUPPRESS_MIGRATIONS=1 in your environment -2. Before deploying the code, you will want to do most of these changes (manually) beforehand, ideally while the system is down. If you are planning to do these migrations before deploying the new code, we strongly recommend merging [this PR separate from the schema changes](https://github.com/MoveOnOrg/Spoke/pull/1346) BEFORE these steps to your production instance. It removes a few bugs which caused postgres to deadlock on message table updates. Instructions below assume Postgres. +2. Before deploying the code, you will want to do most of these changes (manually) beforehand, ideally while the system is down. If you are planning to do these migrations before deploying the new code, we strongly recommend merging [this PR separate from the schema changes](https://github.com/StateVoicesNational/Spoke/pull/1346) BEFORE these steps to your production instance. It removes a few bugs which caused postgres to deadlock on message table updates. Instructions below assume Postgres. 2.1 Create the additional columns: @@ -972,7 +972,7 @@ This release includes the following improvements: Note on Knex Migration: Anyone that is upgrading from a version released earlier than March 2018 should see this issue comment: -https://github.com/MoveOnOrg/Spoke/pull/1154#issuecomment-510163604 +https://github.com/StateVoicesNational/Spoke/pull/1154#issuecomment-510163604 Thanks to all the contributors part of this release including: [AnuradhaNaik](https://github.com/AnuradhaNaik), @@ -1001,7 +1001,7 @@ Migrations: Heroku: -The Heroku deployment method has been migrated to the container runtime. When upgrading an existing Heroku app, these [migration steps](https://github.com/MoveOnOrg/Spoke/blob/33e2edcc455836f36eafd56d585430ac1ceda515/docs/HOWTO_HEROKU_DEPLOY.md#upgrading-an-existing-heroku-app) will need to be performed. +The Heroku deployment method has been migrated to the container runtime. When upgrading an existing Heroku app, these [migration steps](https://github.com/StateVoicesNational/Spoke/blob/33e2edcc455836f36eafd56d585430ac1ceda515/docs/HOWTO_HEROKU_DEPLOY.md#upgrading-an-existing-heroku-app) will need to be performed. Lambda: @@ -1081,7 +1081,7 @@ _April 2018:_ Version 1.3 This feature helps cases where someone accidentally clicked a button or wants to follow-up with requested information. - Texters can update their name, email and other information from the menu. Admins can update texter info from the console -- A new SuperVolunteer role, which allows a non-admin to update assignments, and [some other tasks](https://github.com/MoveOnOrg/Spoke/issues/455) +- A new SuperVolunteer role, which allows a non-admin to update assignments, and [some other tasks](https://github.com/StateVoicesNational/Spoke/issues/455) - Added [MailGun support](HOWTO_HEROKU_DEPLOY.md#setting-up-mailgun) - Frontend React tests! - Added an action handler to automatically subscribe to a [Revere](https://reverehq.com/) @@ -1110,7 +1110,7 @@ Thanks go to all our contributors for this release including: ## v1.2 -_January 2018:_ Version 1.2 is our second release since MoveOn has adopted Spoke. We are committed to fixing bugs, adding new features and making this project as nimble as possible. For this release, we've included changes from [GetUp](https://www.getup.org.au/), updated certain dependencies, updated Auth0 integration, added user editing capabilities for texters and admins and continued to add outside integration points with outside CRMs. Please continue to add and work on our growing [issues list](https://github.com/MoveOnOrg/Spoke/issues). We have also switched from `master` => `main` as a new naming convention for the most stable/default branch. +_January 2018:_ Version 1.2 is our second release since MoveOn has adopted Spoke. We are committed to fixing bugs, adding new features and making this project as nimble as possible. For this release, we've included changes from [GetUp](https://www.getup.org.au/), updated certain dependencies, updated Auth0 integration, added user editing capabilities for texters and admins and continued to add outside integration points with outside CRMs. Please continue to add and work on our growing [issues list](https://github.com/StateVoicesNational/Spoke/issues). We have also switched from `master` => `main` as a new naming convention for the most stable/default branch. We've worked on a lot, but some critical developments to highlight include: @@ -1133,7 +1133,7 @@ Thanks go to to all our contributors for this release including: [jmcarp](https: _October 2017:_ Version 1.1 is our first release since MoveOn has been using Spoke successfully in production. We are committed to making this an open-source project used and developed by the wider progressive tech community to advance our political goals. Part of our work has been to make that transparent. Besides this public repository, please help -with our growing [issues list](https://github.com/MoveOnOrg/Spoke/issues), including those marked `easy`. +with our growing [issues list](https://github.com/StateVoicesNational/Spoke/issues), including those marked `easy`. But of course, we've also done some actual development work! We've fixed a ton of bugs, but here are some highlights for this release: @@ -1141,7 +1141,7 @@ highlights for this release: - Adds a passing test framework - Resolves many bugs related to saving and updating a Campaign for admins - Improves the Texter interface (better reply visibility, especially on mobile) along with sending on `` -- Adds a [Deploy to Heroku](https://github.com/MoveOnOrg/Spoke#deploy-to-heroku) button for easier first-time deployments +- Adds a [Deploy to Heroku](https://github.com/StateVoicesNational/Spoke#deploy-to-heroku) button for easier first-time deployments - Documented [how to deploy on Amazon AWS Lambda](DEPLOYING_AWS_LAMBDA.md) - Migrated from a RethinkDB backend to a Knex.js backend (we recommend use with postgresql database) - Improved Spoke's security From a3649bed6791e76e99aa930e1f8917e4f01d73cc Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 10:02:32 -0800 Subject: [PATCH 24/26] Lower case sv uri update on release notes --- docs/RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/RELEASE_NOTES.md b/docs/RELEASE_NOTES.md index fd5479663..db23fc126 100644 --- a/docs/RELEASE_NOTES.md +++ b/docs/RELEASE_NOTES.md @@ -444,7 +444,7 @@ But because of the timing it was ambiguous whether we 'just' hit scaling issues - **Canned response tagging:** you can apply 1 or more tags to a canned response which will automatically apply that tags when a texter uses that canned response. - **Addressable message review queries:** message review now has "addressable urls" meaning that the url is changed whenever you make a query. This now allows you to directly link to a specific query. Because of this, there are now links in the texter stats section of the campaign page that link to a filter for that specific texter and a new "convos" button that takes you directly to a view that filters down to only messages within the campaign. - **Allow search terms to be _excluded_ from the campaign search:** If a search starts with "-", it filters out campaigns that match the rest of the search term. -- **Documentation microsite:** our docs now exist on an [external microsite](https://moveonorg.github.io/Spoke) to help our docs +- **Documentation microsite:** our docs now exist on an [external microsite](https://statevoicesnational.github.io/Spoke) to help our docs - [Documentation now exists for all of the extensions!](HOWTO-extend-spoke.md) ### Appreciations From e21c070e230c0d50aad0316d8fbac051958fe575 Mon Sep 17 00:00:00 2001 From: Arique1104 <60521756+Arique1104@users.noreply.github.com> Date: Tue, 5 Dec 2023 10:10:55 -0800 Subject: [PATCH 25/26] Updates admin script import to contain sv uri --- src/containers/AdminScriptImport.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/containers/AdminScriptImport.jsx b/src/containers/AdminScriptImport.jsx index 5b223990f..38a911268 100644 --- a/src/containers/AdminScriptImport.jsx +++ b/src/containers/AdminScriptImport.jsx @@ -59,7 +59,7 @@ export default class AdminScriptImport extends Component { render() { const url = - "https://github.com/MoveOnOrg/Spoke/blob/main/docs/HOWTO_IMPORT_GOOGLE_DOCS_SCRIPTS_TO_IMPORT.md"; + "https://github.com/StateVoicesNational/Spoke/blob/main/docs/HOWTO_IMPORT_GOOGLE_DOCS_SCRIPTS_TO_IMPORT.md"; return (
Date: Tue, 5 Dec 2023 10:11:22 -0800 Subject: [PATCH 26/26] updates jobs to contain sv uri --- src/workers/jobs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/workers/jobs.js b/src/workers/jobs.js index 468c5c12f..96d92b4e5 100644 --- a/src/workers/jobs.js +++ b/src/workers/jobs.js @@ -1282,7 +1282,7 @@ export async function loadMessages(csvFile) { } // Temporary fix for orgless users -// See https://github.com/MoveOnOrg/Spoke/issues/934 +// See https://github.com/StateVoicesNational/Spoke/issues/934 // and job-processes.js export async function fixOrgless() { if (process.env.FIX_ORGLESS) {