Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
b5b0db2
Use larger task size based on size of file inputs (#79)
edandylytics Jun 12, 2026
90f1bbe
Edfial 467 edfial 468 larger task definition (#82)
jkaserEA Jun 16, 2026
cab3d84
precreate log groups and modify cloudwatch widget
zabdykadyrova Jun 24, 2026
560dfa5
version bump
zabdykadyrova Jun 24, 2026
526b4bf
EDFIAL-457 add migration (#73)
rtavernaea Jun 25, 2026
66e24fa
Bump actions/checkout from 6.0.2 to 7.0.0 (#84)
dependabot[bot] Jun 30, 2026
d3cb57b
Bump actions/setup-python from 6.2.0 to 6.3.0 (#86)
dependabot[bot] Jun 30, 2026
e9e44fa
Merge pull request #85 from edanalytics/feature/cloudwatch-widget-update
zabdykadyrova Jul 1, 2026
3a78458
Executor: pin package dependencies (#89)
johncmerfeld Jul 1, 2026
6894c71
use absolute path to prevent build error (#91)
edandylytics Jul 6, 2026
2f28b86
Add safe-chain to App CI and create Executor CI (#90)
zabdykadyrova Jul 7, 2026
62273bf
earthmover_cmd refactor [EDFIAL-466] (#92)
theokaufman Jul 8, 2026
0012cdc
Fix/cross year second pass (#87)
theokaufman Jul 8, 2026
5eb363d
EFIAL-458-config/dependencies and EFIAL-459-partner-sync (#76)
rtavernaea Jul 10, 2026
1d20cd8
Fix/return code (#96)
theokaufman Jul 13, 2026
826addb
Dockefile/buildspec changes for faster buildtime; Some CF changes (#80)
zabdykadyrova Jul 14, 2026
f5f9683
Add Auth0ConfigSecret parameter (#97)
zabdykadyrova Jul 14, 2026
9485276
Remove Auth0ConfigSecret parameter (#98)
zabdykadyrova Jul 15, 2026
640e164
Fix/cross year second pass issues (#100)
theokaufman Jul 16, 2026
b2dce41
Fix/em command logging (#101)
theokaufman Jul 16, 2026
7b4bdeb
Redact sensitive headers from WAF logs (#103)
ea-mtenhoor Jul 17, 2026
81baccd
Executor: bump pyasn1 version (#105)
johncmerfeld Jul 20, 2026
4cb82a6
Executor: bump setuptools version (#106)
johncmerfeld Jul 20, 2026
d96fae2
Merge branch 'main' into release/07-21-2026
edandylytics Jul 21, 2026
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
16 changes: 9 additions & 7 deletions .github/workflows/app_ci_pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,18 @@ jobs:

steps:
- name: Check out Git repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
cache: "npm"
cache-dependency-path: "app/package-lock.json"
- name: Install safe-chain
run: curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.12/install-safe-chain.sh | sh -s -- --ci
- name: Install Node.js dependencies
run: npm ci
run: npm ci --safe-chain-minimum-package-age-hours=168
- name: Sandworm Audit
run: npm run sandworm

Expand Down Expand Up @@ -77,7 +79,7 @@ jobs:
node-version: [22.x]
steps:
- name: Check out Git repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Node.js
Expand All @@ -96,7 +98,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Node.js
Expand All @@ -120,7 +122,7 @@ jobs:
node-version: [22.x]
steps:
- name: Check out Git repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Node.js
Expand All @@ -137,7 +139,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Node.js
Expand All @@ -162,7 +164,7 @@ jobs:

steps:
- name: Check out Git repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Node.js
Expand Down
36 changes: 36 additions & 0 deletions .github/workflows/executor_ci_pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: executor-ci-pipeline

on:
pull_request:
branches: [main, development]
paths:
- "executor/**"

permissions:
contents: read

defaults:
run:
working-directory: ./executor

jobs:
audit:
runs-on: ubuntu-latest

strategy:
matrix:
python-version: ["3.12"]

steps:
- name: Check out Git repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Install safe-chain
run: curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.12/install-safe-chain.sh | sh -s -- --ci
- name: Install Python dependencies
run: pip install -r requirements.txt --safe-chain-minimum-package-age-hours=168
4 changes: 2 additions & 2 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ jobs:
python-version: ["3.12"]
steps:
- name: Checkout Repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ github.head_ref }}
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/semantic_version_compare.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:

steps:
- name: Checkout Compare Branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{github.ref}}
persist-credentials: false
Expand All @@ -31,7 +31,7 @@ jobs:
echo "${new_version}"

- name: Checkout Base Branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{github.event.pull_request.base.ref}}
persist-credentials: false
Expand Down
18 changes: 7 additions & 11 deletions app/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,28 +1,24 @@
FROM public.ecr.aws/docker/library/node:22-alpine

WORKDIR /usr/src/app
RUN adduser -D -s /bin/sh app && mkdir -p /usr/src/app && chown app:app /usr/src/app
# symlink for prisma/openssl issue on alpine: https://github.com/nodejs/docker-node/issues/2175#issuecomment-2530130523
RUN ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3

COPY . .
USER app
WORKDIR /usr/src/app

# RUN apk add --no-cache --virtual .build-deps python3 make g++ \
# && npm ci \
# && apk del .build-deps
COPY --chown=app:app package.json package-lock.json ./
RUN npm ci

COPY --chown=app:app . .

RUN wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem

ARG GIT_HASH=${GIT_HASH:-undefined_hash}

# symlink for prisma/openssl issue on alpine: https://github.com/nodejs/docker-node/issues/2175#issuecomment-2530130523
RUN ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3
RUN npm run prisma:generate-client
RUN npm run api:build

RUN adduser -H -D -s /bin/sh app && \
chown -R app:app /usr/src/app
USER app

EXPOSE 5000
ENTRYPOINT [ "npm" ]
CMD ["run", "api:start-deployed"]
8 changes: 8 additions & 0 deletions app/api/.env.copyme
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,11 @@ EDU_SNOWFLAKE_ROLE=

OAUTH2_ISSUER=http://localhost:8080/realms/example
OAUTH2_AUDIENCE=runway-local

# for tenant sync
UM_SYNC_CRON="0 0 * * *"
UM_URL=https://api.admin.internal-dev.edanalytics.app
# UM_AUTH0_DOMAIN=ea-apps-internal-dev.us.auth0.com
# UM_CLIENT_ID=<get from keeper>
# UM_CLIENT_SECRET=<get from keeper>
# UM_AUDIENCE=https://admin.internal-dev.edanalytics.app
22 changes: 16 additions & 6 deletions app/api/buildspec.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
version: 0.2
phases:
install:
commands:
- docker buildx create --name containerd --driver=docker-container --driver-opt default-load=true --use
pre_build:
commands:
- pwd
Expand All @@ -9,16 +12,23 @@ phases:
- export ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
- export ECR_REPO=$ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$ECR_REPO_NAME
- export DOCKER_TAG=$ECR_REPO:$CODEBUILD_RESOLVED_SOURCE_VERSION
- export DOCKER_CACHE=$ECR_REPO:latest
- export DOCKER_LATEST=$ECR_REPO:latest
- aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $ECR_REPO
- env
build:
commands:
- docker pull $DOCKER_CACHE || true
- docker build --cache-from $DOCKER_CACHE --build-arg GIT_HASH=${CODEBUILD_RESOLVED_SOURCE_VERSION} -t $DOCKER_TAG .
- docker tag $DOCKER_TAG $DOCKER_CACHE
- >-
docker buildx build
--cache-to type=inline,ref=${DOCKER_LATEST},mode=min
--cache-from type=registry,ref=${DOCKER_LATEST}
--tag ${DOCKER_TAG}
--builder=containerd
--build-arg GIT_HASH=${CODEBUILD_RESOLVED_SOURCE_VERSION}
--progress=plain
.
- docker tag $DOCKER_TAG $DOCKER_LATEST
- docker push $DOCKER_TAG
- docker push $DOCKER_CACHE
- docker push $DOCKER_LATEST
post_build:
commands:
- envsubst < Dockerrun.aws.template.json > Dockerrun.aws.json
Expand All @@ -27,4 +37,4 @@ artifacts:
files:
- .ebextensions/**/*
- .platform/**/*
- Dockerrun.aws.json
- Dockerrun.aws.json
5 changes: 4 additions & 1 deletion app/api/integration/factories/partner-user-tenant.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,15 @@ export const makePartnerUserTenantContext = (tag: string) => {
idpId: idp.id,
descriptorNamespace: null,
crossYearMatchingEnabled: false,
managedBy: null,
deletedOn: null,
};

const tenant: WithoutAudit<Tenant> = {
code: `tenant-${tag}`,
partnerId: partner.id,
isGlobal: false,
deletedOn: null,
};

const user: WithoutAudit<Omit<User, 'id'>> = {
Expand Down Expand Up @@ -74,4 +78,3 @@ export const seedContext = async (
user,
};
};

Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ export const partnerA: WithoutAudit<Partner> = {
idpId: idpA.id,
descriptorNamespace: 'partner-a',
crossYearMatchingEnabled: false,
managedBy: null,
deletedOn: null,
};

export const partnerC: WithoutAudit<Partner> = {
Expand All @@ -16,6 +18,8 @@ export const partnerC: WithoutAudit<Partner> = {
idpId: idpA.id, // shares idp with partner A
descriptorNamespace: 'partner-c',
crossYearMatchingEnabled: false,
managedBy: null,
deletedOn: null,
};

export const partnerX: WithoutAudit<Partner> = {
Expand All @@ -24,4 +28,6 @@ export const partnerX: WithoutAudit<Partner> = {
idpId: idpX.id,
descriptorNamespace: null,
crossYearMatchingEnabled: false,
managedBy: null,
deletedOn: null,
};
Loading