Skip to content

Commit f6ed225

Browse files
feat: add AWS Lambda and Snowflake feedback pipeline
1 parent c2aa2e7 commit f6ed225

19 files changed

Lines changed: 1181 additions & 247 deletions

‎.env.example‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,6 @@ MAX_CONCURRENT_INFERENCES=8
66
CACHE_TTL_SECONDS=30
77
REQUESTS_PER_MINUTE=120
88
LOG_LEVEL=INFO
9+
# Optional durable feedback pipeline. Leave FEEDBACK_QUEUE_URL unset for local structured logs.
10+
FEEDBACK_QUEUE_URL=
11+
AWS_REGION=us-east-1
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: AWS Lambda + Snowflake Validation
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
contract-tests:
11+
name: Serverless and warehouse contracts
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
18+
- name: Set up Python
19+
uses: actions/setup-python@v5
20+
with:
21+
python-version: '3.11'
22+
cache: pip
23+
24+
- name: Install validation dependencies
25+
run: |
26+
python -m pip install --upgrade pip
27+
pip install 'boto3>=1.34,<2' 'pytest>=8,<10' 'ruff>=0.9,<1'
28+
29+
- name: Lint integration code
30+
run: >-
31+
ruff check
32+
app/core/feedback_sink.py
33+
serverless/feedback_ingestion
34+
scripts/validate_aws_snowflake_assets.py
35+
tests/test_aws_snowflake_feedback.py
36+
37+
- name: Run credential-free integration contracts
38+
run: pytest -q tests/test_aws_snowflake_feedback.py
39+
40+
- name: Validate AWS and Snowflake assets
41+
run: python scripts/validate_aws_snowflake_assets.py
42+
43+
terraform-validation:
44+
name: Terraform static validation
45+
runs-on: ubuntu-latest
46+
47+
steps:
48+
- name: Checkout repository
49+
uses: actions/checkout@v4
50+
51+
- name: Set up Terraform
52+
uses: hashicorp/setup-terraform@v3
53+
with:
54+
terraform_version: '1.9.8'
55+
56+
- name: Check Terraform formatting
57+
run: terraform fmt -check -recursive infra/aws
58+
59+
- name: Initialize providers without backend
60+
run: terraform -chdir=infra/aws init -backend=false
61+
62+
- name: Validate Terraform
63+
run: terraform -chdir=infra/aws validate

‎.gitignore‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,7 @@ data/
2929
testtmp/
3030
benchmark-results.json
3131
coverage.xml
32+
.terraform/
33+
*.tfstate
34+
*.tfstate.*
35+
infra/aws/feedback_ingestion.zip

0 commit comments

Comments
 (0)