mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -05:00
@@ -23,6 +23,10 @@ from app.models import (
|
|||||||
NOTIFICATION_TECHNICAL_FAILURE,
|
NOTIFICATION_TECHNICAL_FAILURE,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# This is the amount of time to wait after sending an sms message before we check the aws logs and look for delivery
|
||||||
|
# receipts
|
||||||
|
DELIVERY_RECEIPT_DELAY_IN_SECONDS = 120
|
||||||
|
|
||||||
|
|
||||||
@notify_celery.task(
|
@notify_celery.task(
|
||||||
bind=True,
|
bind=True,
|
||||||
@@ -96,7 +100,9 @@ def deliver_sms(self, notification_id):
|
|||||||
message_id = send_to_providers.send_sms_to_provider(notification)
|
message_id = send_to_providers.send_sms_to_provider(notification)
|
||||||
# We have to put it in UTC. For other timezones, the delay
|
# We have to put it in UTC. For other timezones, the delay
|
||||||
# will be ignored and it will fire immediately (although this probably only affects developer testing)
|
# will be ignored and it will fire immediately (although this probably only affects developer testing)
|
||||||
my_eta = datetime.utcnow() + timedelta(seconds=300)
|
my_eta = datetime.utcnow() + timedelta(
|
||||||
|
seconds=DELIVERY_RECEIPT_DELAY_IN_SECONDS
|
||||||
|
)
|
||||||
check_sms_delivery_receipt.apply_async(
|
check_sms_delivery_receipt.apply_async(
|
||||||
[message_id, notification_id, now], eta=my_eta, queue=QueueNames.CHECK_SMS
|
[message_id, notification_id, now], eta=my_eta, queue=QueueNames.CHECK_SMS
|
||||||
)
|
)
|
||||||
|
|||||||
37
docs/all.md
37
docs/all.md
@@ -286,7 +286,6 @@ The equivalent command if you are running the API locally:
|
|||||||
docker run -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-weekly zap-api-scan.py -t http://host.docker.internal:6011/docs/openapi.yml -f openapi -c zap.conf -r report.html
|
docker run -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-weekly zap-api-scan.py -t http://host.docker.internal:6011/docs/openapi.yml -f openapi -c zap.conf -r report.html
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
# Deploying
|
# Deploying
|
||||||
|
|
||||||
We deploy automatically to cloud.gov for production, demo, and staging environments.
|
We deploy automatically to cloud.gov for production, demo, and staging environments.
|
||||||
@@ -727,13 +726,14 @@ Any changes to policies and procedures defined both here and in the SSPP must be
|
|||||||
that the security of the system is maintained.
|
that the security of the system is maintained.
|
||||||
|
|
||||||
1. [Alerts, Notifications, Monitoring](#alerts)
|
1. [Alerts, Notifications, Monitoring](#alerts)
|
||||||
1. [Restaging Apps](#restaging-apps)
|
2. [Restaging Apps](#restaging-apps)
|
||||||
1. [Smoke-testing the App](#smoke-testing)
|
3. [Smoke-testing the App](#smoke-testing)
|
||||||
1. [Configuration Management](#cm)
|
4. [Simulated bulk send testing](#simulated-bulk-send-testing)
|
||||||
1. [DNS Changes](#dns)
|
5. [Configuration Management](#cm)
|
||||||
1. [Known Gotchas](#gotcha)
|
6. [DNS Changes](#dns)
|
||||||
1. [User Account Management](#ac)
|
7. [Known Gotchas](#gotcha)
|
||||||
1. [SMS Phone Number Management](#phone-numbers)
|
8. [User Account Management](#ac)
|
||||||
|
9. [SMS Phone Number Management](#phone-numbers)
|
||||||
|
|
||||||
## <a name="alerts"></a> Alerts, Notifications, Monitoring
|
## <a name="alerts"></a> Alerts, Notifications, Monitoring
|
||||||
|
|
||||||
@@ -792,6 +792,27 @@ To ensure that notifications are passing through the application properly, the f
|
|||||||
1. Log into the app. This will verify SNS integration for a one-off message.
|
1. Log into the app. This will verify SNS integration for a one-off message.
|
||||||
1. Upload a CSV and schedule send for the soonest time after "Now". This will verify S3 connections as well as scheduler and worker processes are running properly.
|
1. Upload a CSV and schedule send for the soonest time after "Now". This will verify S3 connections as well as scheduler and worker processes are running properly.
|
||||||
|
|
||||||
|
## <a name="simulated-bulk-send-testing"></a> Simulated bulk send testing
|
||||||
|
|
||||||
|
Assuming that you have followed all steps to set up localstack successfully (see docs/localstack.md), do the following:
|
||||||
|
|
||||||
|
1. Create an sms template that requires no inputs from the user (i.e. the csv file will only have phone numbers)
|
||||||
|
2. Uncomment the test 'test_generate_csv_for_bulk_testing' in app/test_utils.py
|
||||||
|
3. Run `make test` on this project. This will generate the csv file for the bulk test.
|
||||||
|
4. If you are not a platform admin for your service when you run locally, do the following:
|
||||||
|
- >psql -d notification_api
|
||||||
|
- update users set platform_admin='t';
|
||||||
|
- \q
|
||||||
|
- sign out
|
||||||
|
- sign in.
|
||||||
|
- Go to settings and set the organization for your service to 'Broadcast services' (scroll down to platform admin)
|
||||||
|
- Go to settings and set your service to 'live' (scroll down to platform admin)
|
||||||
|
5. Run your app 'locally'. I.e. run `make run-procfile` on this project and `make run-flask` on the admin project
|
||||||
|
6. Sign in. Verify you are running with localstack. I.e., you do NOT receive a text message on sign in. Instead,
|
||||||
|
you see your authentication code in green in the api logs
|
||||||
|
7. Go to send messages and upload your csv file and send your 100000 messages
|
||||||
|
|
||||||
|
|
||||||
## <a name="cm"></a> Configuration Management
|
## <a name="cm"></a> Configuration Management
|
||||||
|
|
||||||
Also known as: **How to move code from my machine to production**
|
Also known as: **How to move code from my machine to production**
|
||||||
|
|||||||
@@ -90,3 +90,13 @@ def test_get_uuid_string_or_none():
|
|||||||
|
|
||||||
def test_get_public_notify_type_text():
|
def test_get_public_notify_type_text():
|
||||||
assert get_public_notify_type_text(UPLOAD_DOCUMENT) == "document"
|
assert get_public_notify_type_text(UPLOAD_DOCUMENT) == "document"
|
||||||
|
|
||||||
|
|
||||||
|
# This method is used for simulating bulk sends. We use localstack and run on a developer's machine to do the
|
||||||
|
# simulation. Please see docs->bulk_testing.md for instructions.
|
||||||
|
# def test_generate_csv_for_bulk_testing():
|
||||||
|
# f = open("bulktest_100000.csv", "w")
|
||||||
|
# f.write("phone number\n")
|
||||||
|
# for _ in range(0, 100000):
|
||||||
|
# f.write("16615555555\n")
|
||||||
|
# f.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user