Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
141eba8
feat: Update Docker CI workflow to enhance environment variable confi…
CDevmina May 14, 2025
7d81a7e
refactor: Remove unused UserData and related schemas from API definition
CDevmina May 18, 2025
38d94c1
feat: Update searchStores and lookupStores functions for improved que…
CDevmina May 18, 2025
af2d6a3
feat: Refactor UserDashboard layout for improved responsiveness and o…
CDevmina May 18, 2025
eedc4b6
feat: Enhance UserDashboard layout with improved icon organization an…
CDevmina May 18, 2025
43afec6
Refactor ApiDocsPage: Enhance layout, improve accessibility, and upda…
CDevmina May 18, 2025
5b95edd
feat: Revamp HomePage layout with enhanced sections for users and sto…
CDevmina May 18, 2025
fdb985d
feat: Update logo in Header and enhance HomePage title for improved b…
CDevmina May 18, 2025
ec46d3e
feat: Implement Breadcrumbs component and integrate it into Layout; a…
CDevmina May 18, 2025
614a8e9
feat: Add toast notifications for user actions in UserDataSharingPage…
CDevmina May 18, 2025
dde2632
feat: Update button colors in UserDashboard, UserDataSharingPage, and…
CDevmina May 18, 2025
e00b08d
feat: Enhance UserDashboard with useRef for Tabs component; add type …
CDevmina May 18, 2025
e39625f
feat: Refactor InterestFormModal to implement multi-step selection; a…
CDevmina May 18, 2025
896e7f7
feat: Add purchase functionality to ProductCard and ProductList; impl…
CDevmina May 18, 2025
0224a3d
feat: Update button colors in ApiKeyManagement and StoreDashboard for…
CDevmina May 18, 2025
6e36be6
fix: Correct focus-visible outline class for Buy Now button in Produc…
CDevmina May 19, 2025
cb3b76a
feat: Enhance StoreRegistrationForm with improved input components an…
CDevmina May 19, 2025
2bf8693
feat: Enhance API key management by adding required fields and valida…
CDevmina May 19, 2025
bd51869
feat: Add client-side validation for API key name in ApiKeyManagement…
CDevmina May 19, 2025
d526c5a
feat: Improve spacing and layout in ApiKeyManagement; increase paddin…
CDevmina May 19, 2025
67c14e6
feat: Replace FloatingLabel with Label and TextInput for improved for…
CDevmina May 19, 2025
340b9e7
feat: Update service name in health check response to 'tapiro-api-int…
CDevmina May 19, 2025
740c5af
feat: Refactor Cancel button placement in UserPreferencesPage for imp…
CDevmina May 19, 2025
e0c7ae6
feat: Update button color in UserPreferencesPage for improved visual …
CDevmina May 19, 2025
ca202de
feat: Enhance input styling in UserPreferencesPage for improved dark …
CDevmina May 19, 2025
d1ee05a
feat: Update attribute handling in UserPreferencesPage to store full …
CDevmina May 19, 2025
0d12408
feat: Enhance cache invalidation logic in user preferences services t…
CDevmina May 19, 2025
7852fc7
feat: Enhance user profile update logic to include email in cache inv…
CDevmina May 19, 2025
2f1ddd1
feat: Enhance cache invalidation logic to utilize email for STORE_PRE…
CDevmina May 19, 2025
91c0126
feat: Update User Preferences display and Product components to inclu…
CDevmina May 19, 2025
71da6cc
fix: Adjust padding in Card component on ApiDocsPage for improved layout
CDevmina May 20, 2025
874ac77
fix: Center the Sign Up button in the HomePage for improved layout
CDevmina May 20, 2025
1f09583
feat: Enhance store consent management by adding caching for user con…
CDevmina May 20, 2025
4be3538
feat: Add schemas for PurchaseItem and PurchaseEntry to OpenAPI speci…
CDevmina May 20, 2025
360ac13
feat: Add PurchaseItem and PurchaseEntry interfaces to data contracts
CDevmina May 20, 2025
0f6aee5
feat: Add new indexes for userData collection to enhance query perfor…
CDevmina May 20, 2025
c401212
feat: Enhance UserPreferencesPage with additional demographic fields …
CDevmina May 20, 2025
58efe0e
feat: Add inferred gender display and improve DemoInfoCard styling in…
CDevmina May 20, 2025
f6ba051
feat: Replace Verify button with icon in DemoInfoCard and improve sty…
CDevmina May 20, 2025
5257c7d
feat: Update button styles to blue and improve clarity in UserAnalyti…
CDevmina May 20, 2025
1e5df51
feat: Enhance table styling with rounded corners and borders in ApiUs…
CDevmina May 20, 2025
a874980
feat: Add verification and unverification functionality for demograph…
CDevmina May 20, 2025
c95042b
feat: Refactor updateUserProfile to enhance demographic data handling…
CDevmina May 20, 2025
977d90d
feat: Add deleteUserDataHistory endpoint and implement user data dele…
CDevmina May 20, 2025
cd4931c
feat: Update delete confirmation modal styling for improved visibility
CDevmina May 20, 2025
21d973f
feat: Update delete confirmation modal icon color for better visibility
CDevmina May 20, 2025
1ddf78b
feat: Update delete confirmation modal icon color for improved visibi…
CDevmina May 20, 2025
0a35039
feat: Update button hover color for improved user interaction
CDevmina May 20, 2025
2aae478
feat: Update button focus ring color for improved accessibility
CDevmina May 20, 2025
a979849
feat: Update cache methods to use Optional for options parameter
CDevmina May 20, 2025
ead3888
feat: Add cache invalidation for user store consent in user preferenc…
CDevmina May 20, 2025
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
63 changes: 40 additions & 23 deletions .github/workflows/ci-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ jobs:
docker-tests:
name: Docker Tests
runs-on: ubuntu-latest
environment: development
environment: Production
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
Expand All @@ -108,39 +108,56 @@ jobs:
curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

- name: Configure environment
- name: Create env file
run: |
# Create .env file
cat << EOF > .env
MONGODB_URI=${{ secrets.MONGODB_URI }}
AUTH0_CLIENT_ID=${{ secrets.AUTH0_CLIENT_ID }}
AUTH0_ISSUER_BASE_URL=${{ secrets.AUTH0_ISSUER_BASE_URL }}
AUTH0_CLIENT_SECRET=${{ secrets.AUTH0_CLIENT_SECRET }}
EOF
echo "MONGODB_URI=${{ secrets.MONGODB_URI }}" >> .env
echo "DB_NAME=tapiro" >> .env
echo "AUTH0_SPA_CLIENT_ID=${{ secrets.AUTH0_SPA_CLIENT_ID }}" >> .env
echo "AUTH0_ISSUER_BASE_URL=${{ secrets.AUTH0_ISSUER_BASE_URL }}" >> .env
echo "AUTH0_TOKEN_URL=${{ secrets.AUTH0_TOKEN_URL }}" >> .env
echo "AUTH0_AUTHORIZE_URL=${{ secrets.AUTH0_AUTHORIZE_URL }}" >> .env
echo "AUTH0_AUDIENCE=${{ secrets.AUTH0_AUDIENCE }}" >> .env
echo "AUTH0_MANAGEMENT_API_TOKEN=${{ secrets.AUTH0_MANAGEMENT_API_TOKEN }}" >> .env
echo "AUTH0_USER_ROLE_ID=${{ secrets.AUTH0_USER_ROLE_ID }}" >> .env
echo "AUTH0_STORE_ROLE_ID=${{ secrets.AUTH0_STORE_ROLE_ID }}" >> .env
echo "AUTH0_M2M_CLIENT_ID=${{ secrets.AUTH0_M2M_CLIENT_ID }}" >> .env
echo "AUTH0_M2M_CLIENT_SECRET=${{ secrets.AUTH0_M2M_CLIENT_SECRET }}" >> .env
echo "AI_SERVICE_API_KEY=${{ secrets.AI_SERVICE_API_KEY }}" >> .env
echo "AUTH0_DOMAIN=${{ secrets.AUTH0_DOMAIN }}" >> .env
echo "ALLOWED_ORIGINS=http://localhost:5174" >> .env
# Variables for compose.yml that are not secrets but good to have in .env for consistency
echo "REDIS_HOST=redis" >> .env
echo "REDIS_PORT=6379" >> .env
echo "BASE_URL=http://localhost:3000" >> .env
echo "FRONTEND_URL=http://localhost:5173" >> .env
echo "AI_SERVICE_URL=http://ml-service:8000/api" >> .env
echo "EXTERNAL_API_URL=http://tapiro-api-external:3001" >> .env
echo "API_BASE_URL=http://tapiro-api-internal:3000" >> .env # For ml-service
echo "VITE_API_URL=http://localhost:3000" >> .env # For web
echo "VITE_STORE_API_URL=http://localhost:3001" >> .env # For demo-store

- name: Build containers
env:
MONGODB_URI: ${{ secrets.MONGODB_URI }}
AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }}
AUTH0_ISSUER_BASE_URL: ${{ secrets.AUTH0_ISSUER_BASE_URL }}
AUTH0_CLIENT_SECRET: ${{ secrets.AUTH0_CLIENT_SECRET }}
run: |
docker compose -f compose.yml build
docker compose -f compose.yml config
run: docker compose -f compose.yml build
# No explicit env block needed here if .env file is comprehensive

- name: Test container health
run: |
docker compose -f compose.yml up -d
echo "Waiting for containers to start..."
sleep 30
sleep 30 # Adjust sleep time if services take longer to start

# Simple container status check
RUNNING_CONTAINERS=$(docker compose ps | grep -c "Up")
if [ "${RUNNING_CONTAINERS}" -eq 3 ]; then
# Check status of all services defined in compose.yml
SERVICES_COUNT=$(docker compose -f compose.yml config --services | wc -l)
RUNNING_CONTAINERS=$(docker compose -f compose.yml ps --services --filter "status=running" | wc -l)

echo "Expected services: $SERVICES_COUNT"
echo "Running containers: $RUNNING_CONTAINERS"

if [ "${RUNNING_CONTAINERS}" -eq "${SERVICES_COUNT}" ]; then
echo "All containers are running"
docker ps
docker compose ps
else
echo "Container startup failed"
echo "Not all containers started successfully."
docker compose ps
docker compose logs
exit 1
Expand Down
48 changes: 35 additions & 13 deletions .github/workflows/ci-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,31 +104,53 @@ jobs:
- name: Create env file
run: |
echo "MONGODB_URI=${{ secrets.MONGODB_URI }}" >> .env
echo "AUTH0_CLIENT_ID=${{ secrets.AUTH0_CLIENT_ID }}" >> .env
echo "DB_NAME=tapiro" >> .env
echo "AUTH0_SPA_CLIENT_ID=${{ secrets.AUTH0_SPA_CLIENT_ID }}" >> .env
echo "AUTH0_ISSUER_BASE_URL=${{ secrets.AUTH0_ISSUER_BASE_URL }}" >> .env
echo "AUTH0_CLIENT_SECRET=${{ secrets.AUTH0_CLIENT_SECRET }}" >> .env
echo "AUTH0_TOKEN_URL=${{ secrets.AUTH0_TOKEN_URL }}" >> .env
echo "AUTH0_AUTHORIZE_URL=${{ secrets.AUTH0_AUTHORIZE_URL }}" >> .env
echo "AUTH0_AUDIENCE=${{ secrets.AUTH0_AUDIENCE }}" >> .env
echo "AUTH0_MANAGEMENT_API_TOKEN=${{ secrets.AUTH0_MANAGEMENT_API_TOKEN }}" >> .env
echo "AUTH0_USER_ROLE_ID=${{ secrets.AUTH0_USER_ROLE_ID }}" >> .env
echo "AUTH0_STORE_ROLE_ID=${{ secrets.AUTH0_STORE_ROLE_ID }}" >> .env
echo "AUTH0_M2M_CLIENT_ID=${{ secrets.AUTH0_M2M_CLIENT_ID }}" >> .env
echo "AUTH0_M2M_CLIENT_SECRET=${{ secrets.AUTH0_M2M_CLIENT_SECRET }}" >> .env
echo "AI_SERVICE_API_KEY=${{ secrets.AI_SERVICE_API_KEY }}" >> .env
echo "AUTH0_DOMAIN=${{ secrets.AUTH0_DOMAIN }}" >> .env
echo "ALLOWED_ORIGINS=http://localhost:5174" >> .env
# Variables for compose.yml that are not secrets but good to have in .env for consistency
echo "REDIS_HOST=redis" >> .env
echo "REDIS_PORT=6379" >> .env
echo "BASE_URL=http://localhost:3000" >> .env
echo "FRONTEND_URL=http://localhost:5173" >> .env
echo "AI_SERVICE_URL=http://ml-service:8000/api" >> .env
echo "EXTERNAL_API_URL=http://tapiro-api-external:3001" >> .env
echo "API_BASE_URL=http://tapiro-api-internal:3000" >> .env # For ml-service
echo "VITE_API_URL=http://localhost:3000" >> .env # For web
echo "VITE_STORE_API_URL=http://localhost:3001" >> .env # For demo-store

- name: Build containers
run: docker compose -f compose.yml build
env:
MONGODB_URI: ${{ secrets.MONGODB_URI }}
AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }}
AUTH0_ISSUER_BASE_URL: ${{ secrets.AUTH0_ISSUER_BASE_URL }}
AUTH0_CLIENT_SECRET: ${{ secrets.AUTH0_CLIENT_SECRET }}
# No explicit env block needed here if .env file is comprehensive

- name: Test container health
run: |
docker compose -f compose.yml up -d
echo "Waiting for containers to start..."
sleep 30
sleep 30 # Adjust sleep time if services take longer to start

# Check status of all services defined in compose.yml
SERVICES_COUNT=$(docker compose -f compose.yml config --services | wc -l)
RUNNING_CONTAINERS=$(docker compose -f compose.yml ps --services --filter "status=running" | wc -l)

# Simple container status check
RUNNING_CONTAINERS=$(docker compose ps | grep -c "Up")
if [ "${RUNNING_CONTAINERS}" -eq 3 ]; then
echo "Expected services: $SERVICES_COUNT"
echo "Running containers: $RUNNING_CONTAINERS"

if [ "${RUNNING_CONTAINERS}" -eq "${SERVICES_COUNT}" ]; then
echo "All containers are running"
docker ps
docker compose ps
else
echo "Container startup failed"
echo "Not all containers started successfully."
docker compose ps
docker compose logs
exit 1
Expand Down
Loading
Loading