Skip to content

Commit 25886cc

Browse files
authored
Merge pull request #1695 from GSA/main
05/07/2025 Production Deploy
2 parents 8ae5868 + 9c93e81 commit 25886cc

File tree

12 files changed

+1300
-1183
lines changed

12 files changed

+1300
-1183
lines changed

.ds.baseline

Lines changed: 5 additions & 251 deletions
Original file line numberDiff line numberDiff line change
@@ -127,262 +127,16 @@
127127
}
128128
],
129129
"results": {
130-
".github/workflows/checks.yml": [
131-
{
132-
"type": "Secret Keyword",
133-
"filename": ".github/workflows/checks.yml",
134-
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
135-
"is_verified": false,
136-
"line_number": 28,
137-
"is_secret": false
138-
},
139-
{
140-
"type": "Basic Auth Credentials",
141-
"filename": ".github/workflows/checks.yml",
142-
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
143-
"is_verified": false,
144-
"line_number": 45,
145-
"is_secret": false
146-
}
147-
],
148-
".github/workflows/daily_checks.yml": [
149-
{
150-
"type": "Secret Keyword",
151-
"filename": ".github/workflows/daily_checks.yml",
152-
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
153-
"is_verified": false,
154-
"line_number": 61,
155-
"is_secret": false
156-
},
157-
{
158-
"type": "Basic Auth Credentials",
159-
"filename": ".github/workflows/daily_checks.yml",
160-
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
161-
"is_verified": false,
162-
"line_number": 77,
163-
"is_secret": false
164-
}
165-
],
166-
"app/enums.py": [
167-
{
168-
"type": "Secret Keyword",
169-
"filename": "app/enums.py",
170-
"hashed_secret": "12322e07b94ee3c7cd65a2952ece441538b53eb3",
171-
"is_verified": false,
172-
"line_number": 123,
173-
"is_secret": false
174-
}
175-
],
176-
"app/notifications/receive_notifications.py": [
177-
{
178-
"type": "Base64 High Entropy String",
179-
"filename": "app/notifications/receive_notifications.py",
180-
"hashed_secret": "d70eab08607a4d05faa2d0d6647206599e9abc65",
181-
"is_verified": false,
182-
"line_number": 29,
183-
"is_secret": false
184-
}
185-
],
186-
"deploy-config/sandbox.yml": [
187-
{
188-
"type": "Secret Keyword",
189-
"filename": "deploy-config/sandbox.yml",
190-
"hashed_secret": "113151dd10316fcb0d5507b6215d78e2f3fe9e54",
191-
"is_verified": false,
192-
"line_number": 11,
193-
"is_secret": false
194-
}
195-
],
196-
"sample.env": [
197-
{
198-
"type": "Basic Auth Credentials",
199-
"filename": "sample.env",
200-
"hashed_secret": "5b98cf4c3d794c8af1fcd7991e89cd4e52fb42a4",
201-
"is_verified": false,
202-
"line_number": 16,
203-
"is_secret": false
204-
}
205-
],
206-
"tests/app/aws/test_s3.py": [
130+
".github/actions/deploy-proxy/action.yml": [
207131
{
208132
"type": "Hex High Entropy String",
209-
"filename": "tests/app/aws/test_s3.py",
210-
"hashed_secret": "67a74306b06d0c01624fe0d0249a570f4d093747",
211-
"is_verified": false,
212-
"line_number": 42,
213-
"is_secret": false
214-
}
215-
],
216-
"tests/app/clients/test_document_download.py": [
217-
{
218-
"type": "Secret Keyword",
219-
"filename": "tests/app/clients/test_document_download.py",
220-
"hashed_secret": "3acfb2c2b433c0ea7ff107e33df91b18e52f960f",
221-
"is_verified": false,
222-
"line_number": 14,
223-
"is_secret": false
224-
}
225-
],
226-
"tests/app/clients/test_performance_platform.py": [
227-
{
228-
"type": "Base64 High Entropy String",
229-
"filename": "tests/app/clients/test_performance_platform.py",
230-
"hashed_secret": "76bb66c38ac4046bf73cd4a2c35a2b0af94aeb61",
231-
"is_verified": false,
232-
"line_number": 84,
233-
"is_secret": false
234-
}
235-
],
236-
"tests/app/dao/test_services_dao.py": [
237-
{
238-
"type": "Secret Keyword",
239-
"filename": "tests/app/dao/test_services_dao.py",
240-
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
241-
"is_verified": false,
242-
"line_number": 289,
243-
"is_secret": false
244-
}
245-
],
246-
"tests/app/dao/test_users_dao.py": [
247-
{
248-
"type": "Secret Keyword",
249-
"filename": "tests/app/dao/test_users_dao.py",
250-
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
251-
"is_verified": false,
252-
"line_number": 69,
253-
"is_secret": false
254-
},
255-
{
256-
"type": "Secret Keyword",
257-
"filename": "tests/app/dao/test_users_dao.py",
258-
"hashed_secret": "f2c57870308dc87f432e5912d4de6f8e322721ba",
259-
"is_verified": false,
260-
"line_number": 199,
261-
"is_secret": false
262-
}
263-
],
264-
"tests/app/db.py": [
265-
{
266-
"type": "Secret Keyword",
267-
"filename": "tests/app/db.py",
268-
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
269-
"is_verified": false,
270-
"line_number": 90,
271-
"is_secret": false
272-
}
273-
],
274-
"tests/app/notifications/test_receive_notification.py": [
275-
{
276-
"type": "Secret Keyword",
277-
"filename": "tests/app/notifications/test_receive_notification.py",
278-
"hashed_secret": "913a73b565c8e2c8ed94497580f619397709b8b6",
279-
"is_verified": false,
280-
"line_number": 27,
281-
"is_secret": false
282-
},
283-
{
284-
"type": "Base64 High Entropy String",
285-
"filename": "tests/app/notifications/test_receive_notification.py",
286-
"hashed_secret": "d70eab08607a4d05faa2d0d6647206599e9abc65",
287-
"is_verified": false,
288-
"line_number": 57,
289-
"is_secret": false
290-
}
291-
],
292-
"tests/app/notifications/test_validators.py": [
293-
{
294-
"type": "Base64 High Entropy String",
295-
"filename": "tests/app/notifications/test_validators.py",
296-
"hashed_secret": "6c1a8443963d02d13ffe575a71abe19ea731fb66",
297-
"is_verified": false,
298-
"line_number": 672,
299-
"is_secret": false
300-
}
301-
],
302-
"tests/app/service/test_rest.py": [
303-
{
304-
"type": "Secret Keyword",
305-
"filename": "tests/app/service/test_rest.py",
306-
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
307-
"is_verified": false,
308-
"line_number": 1285,
309-
"is_secret": false
310-
}
311-
],
312-
"tests/app/test_cloudfoundry_config.py": [
313-
{
314-
"type": "Secret Keyword",
315-
"filename": "tests/app/test_cloudfoundry_config.py",
316-
"hashed_secret": "e5e178db7317356946d13e5d2da037d39ac61c71",
317-
"is_verified": false,
318-
"line_number": 12,
319-
"is_secret": false
320-
},
321-
{
322-
"type": "Basic Auth Credentials",
323-
"filename": "tests/app/test_cloudfoundry_config.py",
324-
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
325-
"is_verified": false,
326-
"line_number": 14,
327-
"is_secret": false
328-
},
329-
{
330-
"type": "Secret Keyword",
331-
"filename": "tests/app/test_cloudfoundry_config.py",
332-
"hashed_secret": "cfd48edeb81ba7d48cbddcf1eeede25ba67057e8",
333-
"is_verified": false,
334-
"line_number": 33,
335-
"is_secret": false
336-
}
337-
],
338-
"tests/app/user/test_rest.py": [
339-
{
340-
"type": "Secret Keyword",
341-
"filename": "tests/app/user/test_rest.py",
342-
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
343-
"is_verified": false,
344-
"line_number": 110,
345-
"is_secret": false
346-
},
347-
{
348-
"type": "Secret Keyword",
349-
"filename": "tests/app/user/test_rest.py",
350-
"hashed_secret": "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33",
351-
"is_verified": false,
352-
"line_number": 864,
353-
"is_secret": false
354-
}
355-
],
356-
"tests/notifications_utils/clients/antivirus/test_antivirus_client.py": [
357-
{
358-
"type": "Secret Keyword",
359-
"filename": "tests/notifications_utils/clients/antivirus/test_antivirus_client.py",
360-
"hashed_secret": "932b25270abe1301c22c709a19082dff07d469ff",
361-
"is_verified": false,
362-
"line_number": 16,
363-
"is_secret": false
364-
}
365-
],
366-
"tests/notifications_utils/clients/encryption/test_encryption_client.py": [
367-
{
368-
"type": "Secret Keyword",
369-
"filename": "tests/notifications_utils/clients/encryption/test_encryption_client.py",
370-
"hashed_secret": "f1e923a9667de11be6a210849a8651c1bfd81605",
371-
"is_verified": false,
372-
"line_number": 13,
373-
"is_secret": false
374-
}
375-
],
376-
"tests/notifications_utils/clients/zendesk/test_zendesk_client.py": [
377-
{
378-
"type": "Secret Keyword",
379-
"filename": "tests/notifications_utils/clients/zendesk/test_zendesk_client.py",
380-
"hashed_secret": "913a73b565c8e2c8ed94497580f619397709b8b6",
133+
"filename": ".github/actions/deploy-proxy/action.yml",
134+
"hashed_secret": "a6c13f5da3788e8d654cd24001dc79a238723248",
381135
"is_verified": false,
382-
"line_number": 16,
136+
"line_number": 18,
383137
"is_secret": false
384138
}
385139
]
386140
},
387-
"generated_at": "2025-02-27T21:09:45Z"
141+
"generated_at": "2025-05-12T16:45:34Z"
388142
}

.github/actions/deploy-proxy/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ inputs:
1515
default: https://github.com/GSA-TTS/cg-egress-proxy.git
1616
proxy_version:
1717
description: git ref to be deployed
18-
default: main
18+
default: 1500c67157c1a7a6fbbda7a2de172b3d0a67e703
1919
runs:
2020
using: composite
2121
steps:

.github/actions/setup-project/action.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,6 @@ runs:
1616
- name: Install poetry
1717
shell: bash
1818
run: pip install poetry==1.8.5
19+
- name: Downgrade virtualenv to compatible version
20+
shell: bash
21+
run: pip install "virtualenv<20.30"

.profile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
export http_proxy=$egress_proxy
77
export https_proxy=$egress_proxy
88
export NEW_RELIC_PROXY_HOST=$egress_proxy
9-
export no_proxy="apps.internal"
9+
export no_proxy="apps.internal,s3-fips.us-gov-west-1.amazonaws.com"

Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ GIT_HOOKS_PATH ?= $(shell git config --global core.hooksPath || echo "")
1616
.PHONY: bootstrap
1717
bootstrap: ## Set up everything to run the app
1818
make generate-version-file
19-
poetry self add poetry-dotenv-plugin
2019
poetry lock --no-update
2120
poetry install --sync --no-root
2221
poetry run pre-commit install
@@ -27,7 +26,6 @@ bootstrap: ## Set up everything to run the app
2726
.PHONY: bootstrap-with-git-hooks
2827
bootstrap-with-git-hooks: ## Sets everything up and accounts for pre-existing git hooks
2928
make generate-version-file
30-
poetry self add poetry-dotenv-plugin
3129
poetry lock --no-update
3230
poetry install --sync --no-root
3331
git config --global --unset-all core.hooksPath

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,9 @@ instructions above for more details.
508508
- [Smoke-testing the App](./docs/all.md#-smoke-testing-the-app)
509509
- [Configuration Management](./docs/all.md#-configuration-management)
510510
- [DNS and Domain Changes](./docs/all.md#-dns-and-domain-changes)
511-
- [Exporting test results for compliance monitoring](./docs/all.md#exporting-test-results-for-compliance-monitoring)
511+
- [Exporting daily scan results for compliance monitoring](./docs/all.md#exporting-daily-scan-results-for-compliance-monitoring)
512+
- [Reviewing daily scan results for compliance](./docs/all.md#reviewing-daily-scan-results-for-compliance)
513+
- [Rotating environment variable secrets](./docs/all.md#rotating-environment-variable-secrets)
512514
- [Known Gotchas](./docs/all.md#-known-gotchas)
513515
- [User Account Management](./docs/all.md#-user-account-management)
514516
- [SMS Phone Number Management](./docs/all.md#-sms-phone-number-management)

app/aws/s3.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from io import StringIO
77

88
import botocore
9+
import eventlet
910
from boto3 import Session
1011
from flask import current_app
1112

@@ -116,9 +117,9 @@ def list_s3_objects():
116117
)
117118
else:
118119
break
119-
except Exception:
120+
except Exception as e:
120121
current_app.logger.exception(
121-
"An error occurred while regenerating cache #notify-debug-admin-1200",
122+
f"An error occurred while regenerating cache #notify-debug-admin-1200: {str(e)}",
122123
)
123124

124125

@@ -375,7 +376,7 @@ def get_job_from_s3(service_id, job_id):
375376
)
376377
retries += 1
377378
sleep_time = backoff_factor * (2**retries) # Exponential backoff
378-
time.sleep(sleep_time)
379+
eventlet.sleep(sleep_time)
379380
continue
380381
else:
381382
# Typically this is "NoSuchKey"

app/celery/tasks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import json
2-
from time import sleep
32

3+
import eventlet
44
from celery.signals import task_postrun
55
from flask import current_app
66
from requests import HTTPError, RequestException, request
@@ -83,7 +83,7 @@ def process_job(job_id, sender_id=None):
8383
process_row(row, template, job, service, sender_id=sender_id)
8484
count = count + 1
8585
if count % 3 == 0:
86-
sleep(1)
86+
eventlet.sleep(1)
8787

8888
# End point/Exit point for message send flow.
8989
job_complete(job, start=start)

app/clients/cloudwatch/aws_cloudwatch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def event_to_db_format(self, event):
151151
# result = temp_client.get_query_results(queryId=query_id)
152152
# if result['status'] == 'Complete':
153153
# break
154-
# time.sleep(1)
154+
# eventlet.sleep(1)
155155

156156
# delivery_receipts = []
157157
# for log in result['results']:

0 commit comments

Comments
 (0)