Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deployment of 2024-09-26 #16005

Merged
merged 65 commits into from
Oct 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
f4e7217
Bump plugin.spring from 2.0.0 to 2.0.20 in /submissions
dependabot[bot] Aug 25, 2024
f49ae78
Bump org.apache.commons:commons-compress in /submissions
dependabot[bot] Aug 25, 2024
d047a18
Bump org.apache.commons:commons-compress in /shared
dependabot[bot] Aug 25, 2024
1b6da35
Bump org.yaml:snakeyaml from 2.2 to 2.3 in /prime-router
dependabot[bot] Sep 1, 2024
d0e4586
Bump com.avast.gradle.docker-compose in /prime-router
dependabot[bot] Sep 1, 2024
5ef65d7
Bump org.apache.commons:commons-lang3 from 3.15.0 to 3.17.0 in /shared
dependabot[bot] Sep 1, 2024
f111a44
Bump com.googlecode.libphonenumber:libphonenumber in /prime-router
dependabot[bot] Sep 8, 2024
a0263ec
Bump the log4j group across 1 directory with 5 updates
dependabot[bot] Sep 15, 2024
70df806
Bump the swagger group in /prime-router with 2 updates
dependabot[bot] Sep 15, 2024
4c344c4
Bump the flyway group across 1 directory with 3 updates
dependabot[bot] Sep 15, 2024
9dcccd5
Bump the azurecore group in /prime-router with 2 updates
dependabot[bot] Sep 15, 2024
1c4a772
Bump com.squareup.okio:okio from 3.9.0 to 3.9.1 in /prime-router
dependabot[bot] Sep 15, 2024
b33bdb7
Bump com.azure:azure-identity from 1.13.2 to 1.13.3 in /prime-router
dependabot[bot] Sep 15, 2024
f3fdb32
Bump com.nimbusds:nimbus-jose-jwt from 9.40 to 9.41.1 in /prime-router
dependabot[bot] Sep 15, 2024
87bd2b0
Bump org.jetbrains.kotlinx:kotlinx-coroutines-core in /prime-router
dependabot[bot] Sep 15, 2024
9bd61ee
Bump org.jetbrains.kotlinx:kotlinx-coroutines-reactor in /submissions
dependabot[bot] Sep 15, 2024
1633ccf
Merge remote-tracking branch 'origin/dependabot/gradle/submissions/or…
thetaurean Sep 17, 2024
a5dd3ec
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/o…
thetaurean Sep 17, 2024
605de1d
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/c…
thetaurean Sep 17, 2024
ac2ed7d
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/c…
thetaurean Sep 17, 2024
ed2ec47
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/c…
thetaurean Sep 17, 2024
a6c1d65
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/a…
thetaurean Sep 17, 2024
f209bc9
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/f…
thetaurean Sep 17, 2024
80fc204
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/c…
thetaurean Sep 17, 2024
fa01800
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/l…
thetaurean Sep 17, 2024
1716538
Merge remote-tracking branch 'origin/dependabot/gradle/shared/org.apa…
thetaurean Sep 17, 2024
ba0dc34
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/c…
thetaurean Sep 17, 2024
984eb47
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/o…
thetaurean Sep 17, 2024
f396416
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/s…
thetaurean Sep 17, 2024
8f681a0
Merge remote-tracking branch 'origin/dependabot/gradle/shared/org.apa…
thetaurean Sep 17, 2024
1a3939a
Merge remote-tracking branch 'origin/dependabot/gradle/submissions/or…
thetaurean Sep 17, 2024
c55e53d
Merge remote-tracking branch 'origin/dependabot/gradle/submissions/pl…
thetaurean Sep 17, 2024
5bccd6c
Bump org.apache.commons:commons-compress in /prime-router
dependabot[bot] Aug 25, 2024
707e70d
Bump com.azure:azure-security-keyvault-secrets in /prime-router
dependabot[bot] Aug 25, 2024
0d231c4
Bump org.postgresql:postgresql from 42.7.3 to 42.7.4 in /prime-router
dependabot[bot] Aug 25, 2024
4ebedda
Bump com.google.guava:guava in /prime-router
dependabot[bot] Aug 18, 2024
0ba7b32
Bump com.github.doyaaaaaken:kotlin-csv-jvm in /prime-router
dependabot[bot] Aug 18, 2024
8eedc3f
Bump jacksonVersion from 2.17.1 to 2.17.2 in /prime-router
dependabot[bot] Aug 9, 2024
efa882c
Authentication Microservice POC (#15765)
jalbinson Sep 17, 2024
cfbf459
Bump azure-storage/azurite in /.environment/docker/docker-compose (#1…
dependabot[bot] Sep 17, 2024
e1207fb
ktlint
snesm Sep 17, 2024
0cc894c
Bump com.googlecode.libphonenumber:libphonenumber in /prime-router
dependabot[bot] Sep 22, 2024
c1ec132
Bump org.springframework.boot from 3.3.2 to 3.3.4 in /submissions
dependabot[bot] Sep 22, 2024
775776e
Merge branch 'master' into platform/thetaurean/mass-dependabots
thetaurean Sep 23, 2024
969e7e0
Merge remote-tracking branch 'origin/dependabot/gradle/submissions/or…
thetaurean Sep 23, 2024
e862a88
reduce log scan runtime
JosiahSiegel Sep 23, 2024
cd56f93
Merge remote-tracking branch 'origin/dependabot/gradle/prime-router/c…
thetaurean Sep 23, 2024
97c4b7e
Merge pull request #15972 from CDCgov/josiahsiegel/fix/scan-logs
JosiahSiegel Sep 24, 2024
6ca1a67
Fork slack-boltjs-app to new location (#15937)
mkalish Sep 24, 2024
23c6d6c
Merge branch 'master' into platform/thetaurean/mass-dependabots
thetaurean Sep 24, 2024
64cc62d
15908 - Implement user flow for e2e smoke test for Org Settings Edit …
penny-lischer Sep 24, 2024
0dd2d0b
Merge branch 'master' into platform/thetaurean/mass-dependabots
snesm Sep 24, 2024
e5cd452
Merge pull request #15903 from CDCgov/platform/thetaurean/mass-depend…
thetaurean Sep 24, 2024
d42e956
small refactor of version file task
jack-h-wang Sep 17, 2024
660192d
Revert unrelated changes
jack-h-wang Sep 18, 2024
454b6b4
fix
jack-h-wang Sep 19, 2024
2d49377
implement generated version object and add to azure report event
jack-h-wang Sep 19, 2024
db7a7f9
add todo note
jack-h-wang Sep 24, 2024
ee8eb29
15805 version in azure events
jack-h-wang Sep 24, 2024
53a27d9
add sonarcloud coverage for /auth microservice (#15985)
snesm Sep 24, 2024
a2de66f
update MT receiver transform (#15804)
GilmoreA6 Sep 24, 2024
ea2b336
add snyk testing for /auth (#15996)
snesm Sep 24, 2024
523a8fb
15905 - Implement user flow for e2e smoke test for Sender Settings Pa…
penny-lischer Sep 25, 2024
db9921c
Bump kotlin from 1.9.23 to 1.9.25 (#14556)
snesm Sep 25, 2024
51a8a01
15766: item sent event (#15920)
mkalish Sep 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .github/actions/build-auth/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# action.yml
name: "Build Auth"
description: "Build Auth microservice"
inputs:
version:
description: "Version tag"
required: true
upload-build:
default: true
run-integration-tests:
default: false
run-qc:
default: false
github-token:
default: false
sp-creds:
description: "Azure Service Principal creds"

runs:
using: "composite"
steps:
# These are for CI and not credentials of any system
- name: Set Environment Variables
working-directory: prime-router
shell: bash
run: |
echo >> $GITHUB_ENV DB_USER='prime'
echo >> $GITHUB_ENV DB_PASSWORD='changeIT!'

- name: Remove unnecessary software
shell: bash
run: |
sudo rm -rf /usr/local/lib/android

- name: Set up JDK 17
uses: actions/setup-java@2dfa2011c5b2a0f1489bf9e433881c92c1631f88
with:
java-version: "17"
distribution: "temurin"
cache: "gradle"

- uses: gradle/actions/setup-gradle@d156388eb19639ec20ade50009f3d199ce1e2808

- name: Lint
if: inputs.run-integration-tests == 'true'
run: ./gradlew :auth:ktlintCheck
shell: bash

- name: Spin up build containers
working-directory: prime-router
shell: bash
run: docker compose -f docker-compose.postgres.yml up -d

- name: Build auth Package
uses: ./.github/actions/retry
with:
timeout_minutes: 10
max_attempts: 2
retry_wait_seconds: 30
command: |
./gradlew :auth:build -x test
shell: bash

- name: Cleanup Gradle Cache
if: inputs.run-integration-tests == 'true'
working-directory: prime-router
run: |
rm -f .gradle/caches/modules-2/modules-2.lock
rm -f .gradle/caches/modules-2/gc.properties
shell: bash
6 changes: 3 additions & 3 deletions .github/actions/sonarcloud/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ runs:
args: >
-Dsonar.coverage.exclusions=prime-router/src/test/**,prime-router/src/testIntegration/**,prime-router/src/main/kotlin/cli/tests/**,frontend-react/**/__mocks__/**,frontend-react/**/mocks/**,frontend-react/**/*.test.*,submissions/src/test/**
-Dsonar.cpd.exclusions=frontend-react/**/*.test.*,prime-router/src/test/**,prime-router/src/testIntegration/**,prime-router/src/main/kotlin/cli/tests/**,submissions/src/test/**
-Dsonar.sources=frontend-react/src,prime-router/src,submissions/src,shared/src
-Dsonar.sources=frontend-react/src,prime-router/src,submissions/src,auth/src,shared/src
-Dsonar.projectKey=CDCgov_prime-data-hub
-Dsonar.organization=cdcgov
-Dsonar.java.binaries=prime-router/build/classes/java/main,prime-router/build/classes/kotlin/main,submissions/build/classes/kotlin/main,shared/build/classes/kotlin/main
-Dsonar.java.libraries=prime-router/build/libs/*.jar,prime-router/build/**/*.jar,submissions/build/**/*.jar,shared/build/**/*.jar
-Dsonar.java.binaries=prime-router/build/classes/java/main,prime-router/build/classes/kotlin/main,submissions/build/classes/kotlin/main,auth/build/classes/kotlin/main,shared/build/classes/kotlin/main
-Dsonar.java.libraries=prime-router/build/libs/*.jar,prime-router/build/**/*.jar,submissions/build/**/*.jar,auth/build/**/*.jar,shared/build/**/*.jar
-Dsonar.coverage.jacoco.xmlReportPaths=prime-router/build/reports/jacoco/test/jacocoTestReport.xml
-Dsonar.javascript.lcov.reportPaths=frontend-react/coverage/lcov.info

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/scan_action_logs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ jobs:
id: scan
with:
github-token: ${{ secrets.RUNLEAKS_TOKEN }}
run-limit: 500
run-limit: 300
min-days-old: 0
max-days-old: 2
max-days-old: 1
patterns-path: ".github/runleaks/patterns.txt"
exclusions-path: ".github/runleaks/exclusions.txt"
fail-on-leak: false
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/snyk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
- "prime-router/**"
- "submissions/**"
- "shared/**"
- "auth/**"

jobs:
pre_job:
Expand All @@ -30,7 +31,7 @@ jobs:
strategy:
fail-fast: false
matrix:
folder: [prime-router, submissions, shared]
folder: [prime-router, submissions, auth, shared]
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: snyk/actions/setup@b98d498629f1c368650224d6d212bf7dfa89e4bf
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/sonarcloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ jobs:
if: steps.changed-files-yaml.outputs.backend_any_changed == 'true' || steps.branch-name.outputs.is_default == 'true'
uses: ./.github/actions/build-submissions

- name: Build Auth Package
if: steps.changed-files-yaml.outputs.backend_any_changed == 'true' || steps.branch-name.outputs.is_default == 'true'
uses: ./.github/actions/build-auth

- name: Perform Java CodeQL Analysis
if: steps.changed-files-yaml.outputs.backend_any_changed == 'true' || steps.branch-name.outputs.is_default == 'true'
uses: github/codeql-action/analyze@v3
Expand Down
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "operations/slack-boltjs-app"]
path = operations/slack-boltjs-app
url = https://github.com/JosiahSiegel/slack-boltjs-app
url = https://github.com/focusconsulting/slack-boltjs-app
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ test.describe("Last Mile Failure page",
await expect(modal).toContainText(`Report ID:${reportIdCell}`);
});

test("table column 'Receiver' will open receiver edit page", async ({ lastMileFailuresPage, isMockDisabled }) => {
test.skip("table column 'Receiver' will open receiver edit page", async ({ lastMileFailuresPage, isMockDisabled }) => {
test.skip(!isMockDisabled, "Mocks are ENABLED, skipping test");
const receiver = tableRows(lastMileFailuresPage.page).nth(0).locator("td").nth(2);
const receiverCell = await receiver.getByRole("link").innerText();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
import { expect } from "@playwright/test";
import { OrganizationEditPage } from "../../../pages/authenticated/admin/organization-edit";
import { test as baseTest } from "../../../test";

export interface OrganizationEditPageFixtures {
organizationEditPage: OrganizationEditPage;
}

const test = baseTest.extend<OrganizationEditPageFixtures>({
organizationEditPage: async (
{
page: _page,
isMockDisabled,
adminLogin,
senderLogin,
receiverLogin,
storageState,
frontendWarningsLogPath,
isFrontendWarningsLog,
},
use,
) => {
const page = new OrganizationEditPage({
page: _page,
isMockDisabled,
adminLogin,
senderLogin,
receiverLogin,
storageState,
frontendWarningsLogPath,
isFrontendWarningsLog,
});
await page.goto();
await use(page);
},
});

test.describe("Organization Edit Page", {
tag: "@smoke",
}, () => {
test.describe("admin user", () => {
test.use({storageState: "e2e/.auth/admin.json"});

test("has correct title", async ({organizationEditPage}) => {
await organizationEditPage.testHeader(false);
await expect(organizationEditPage.page.getByText(/Org name: ignore/)).toBeVisible();
});

test.describe("edit section", () => {
test("has expected 'Meta'", async ({organizationEditPage}) => {
const meta = organizationEditPage.page.getByTestId("gridContainer").getByTestId("grid").nth(2);
await expect(meta).not.toBeEmpty();
});

test("has expected 'Description'", async ({organizationEditPage}) => {
await expect(organizationEditPage.page.getByTestId("description")).not.toBeEmpty();
});

test("has expected 'Jurisdiction'", async ({organizationEditPage}) => {
await expect(organizationEditPage.page.getByTestId("jurisdiction")).not.toBeEmpty();
});
});

test.describe("'Organization Sender Settings' section", () => {
test.beforeEach(async ({ organizationEditPage }) => {
await organizationEditPage.page.locator("#orgsendersettings .usa-table tbody").waitFor({ state: "visible" });
});

test("has at least one sender listed in the table", async ({organizationEditPage}) => {
const rowCount = await organizationEditPage.page.locator("#orgsendersettings .usa-table tbody tr").count();
expect(rowCount).toBeGreaterThanOrEqual(1);
});

test("can edit an organization sender", async ({ organizationEditPage }) => {
const firstOrgSender = await organizationEditPage.page.locator("#orgsendersettings").nth(0).locator("td").nth(0).innerText();
await organizationEditPage.page.locator('#orgsendersettings').getByRole('link', { name: 'Edit' }).nth(0).click();
await expect(organizationEditPage.page).toHaveURL(`/admin/orgsendersettings/org/ignore/sender/${firstOrgSender}/action/edit`);
await expect(organizationEditPage.page.getByText(`Org name: ignore`)).toBeVisible();
await expect(organizationEditPage.page.getByText(`Sender name: ${firstOrgSender}`)).toBeVisible();

await expect(organizationEditPage.page.getByTestId("name")).not.toBeEmpty();
await expect(organizationEditPage.page.getByTestId("format")).not.toBeEmpty();
await expect(organizationEditPage.page.getByTestId("topic")).not.toBeEmpty();
await expect(organizationEditPage.page.getByTestId("customerStatus")).not.toBeEmpty();
await expect(organizationEditPage.page.getByTestId("processingType")).not.toBeEmpty();
});
});

test.describe("'Organization Receiver Settings' section", () => {
test.beforeEach(async ({ organizationEditPage }) => {
await organizationEditPage.page.locator("#orgreceiversettings .usa-table tbody").waitFor({ state: "visible" });
});

test("has at least one sender listed in the table", async ({organizationEditPage}) => {
const rowCount = await organizationEditPage.page.locator("#orgreceiversettings .usa-table tbody tr").count();
expect(rowCount).toBeGreaterThanOrEqual(1);
});
});
});
});
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { expect } from "@playwright/test";
import { tableRows } from "../../../helpers/utils";
import { MOCK_GET_ORGANIZATION_SETTINGS_LIST } from "../../../mocks/organizations";
import { OrganizationPage } from "../../../pages/authenticated/admin/organization";
import { test as baseTest } from "../../../test";

Expand Down Expand Up @@ -72,23 +71,24 @@ test.describe("Admin Organization Settings Page - user flow smoke tests", {

test("filtering works as expected", async ({organizationPage}) => {
const table = organizationPage.page.getByRole("table");
const {description, name, jurisdiction, stateCode} = MOCK_GET_ORGANIZATION_SETTINGS_LIST[2];
const firstDataRow = organizationPage.page.getByRole("table").getByRole("row").nth(1);
const firstDataRowName = (await firstDataRow.getByRole("cell").nth(0).textContent()) ?? "INVALID";
const filterBox = organizationPage.page.getByRole("textbox", {
name: "Filter:",
});

await expect(filterBox).toBeVisible();

await filterBox.fill(name);
await filterBox.fill(firstDataRowName);
const rows = await table.getByRole("row").all();
expect(rows).toHaveLength(2);
const cols = rows[1].getByRole("cell").allTextContents();
const expectedColContents = [
name,
description ?? "",
jurisdiction ?? "",
stateCode ?? "",
"",
await firstDataRow.getByRole("cell").nth(0).textContent(),
await firstDataRow.getByRole("cell").nth(1).textContent() ?? "",
await firstDataRow.getByRole("cell").nth(2).textContent() ?? "",
await firstDataRow.getByRole("cell").nth(3).textContent() ?? "",
await firstDataRow.getByRole("cell").nth(4).textContent() ?? "",
"SetEdit",
];

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
org.gradle.jvmargs=-Dfile.encoding=UTF8 -Xmx2048M
# Set Kotlin version for all peices of the build environment
systemProp.kotlinVersion=1.9.23
systemProp.kotlinVersion=1.9.25
Loading
Loading