🛡️ Sentinel: Fix CI failures and update dependencies
- Resolved the GitHub Actions CI deprecation warning by upgrading checkout/setup-python actions to support Node.js 24 (`v4.2.2` and `v5.4.0` respectively). - Addressed the `pip-audit` failure (CVE-2026-4750) triggered by the malicious `fastar` dependency injection in `fastapi==0.136.3` by explicitly blocking that version (`fastapi[all]!=0.136.3`) in `requirements.txt`. Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
+14
-14
@@ -27,9 +27,9 @@ jobs:
|
|||||||
name: Ruff Lint & Format
|
name: Ruff Lint & Format
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4.2.2.2.2
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5.4.0.4.0
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
cache: 'pip'
|
cache: 'pip'
|
||||||
@@ -48,9 +48,9 @@ jobs:
|
|||||||
name: Alembic Migration Chain Check
|
name: Alembic Migration Chain Check
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4.2.2.2.2
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5.4.0.4.0
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
- name: Validate migration chain
|
- name: Validate migration chain
|
||||||
@@ -60,9 +60,9 @@ jobs:
|
|||||||
name: HTML Accessibility Lint
|
name: HTML Accessibility Lint
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4.2.2.2.2
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5.4.0.4.0
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
cache: 'pip'
|
cache: 'pip'
|
||||||
@@ -78,9 +78,9 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [lint]
|
needs: [lint]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4.2.2.2.2
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5.4.0.4.0
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
cache: 'pip'
|
cache: 'pip'
|
||||||
@@ -93,9 +93,9 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [lint]
|
needs: [lint]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4.2.2.2.2
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5.4.0.4.0
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
cache: 'pip'
|
cache: 'pip'
|
||||||
@@ -116,10 +116,10 @@ jobs:
|
|||||||
ports: ["5672:5672", "15672:15672"]
|
ports: ["5672:5672", "15672:15672"]
|
||||||
options: --health-cmd "rabbitmq-diagnostics -q ping" --health-interval 10s --health-timeout 5s --health-retries 5
|
options: --health-cmd "rabbitmq-diagnostics -q ping" --health-interval 10s --health-timeout 5s --health-retries 5
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4.2.2.2.2
|
||||||
|
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5.4.0.4.0
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
cache: 'pip'
|
cache: 'pip'
|
||||||
@@ -154,7 +154,7 @@ jobs:
|
|||||||
if: github.event_name == 'push'
|
if: github.event_name == 'push'
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Code
|
- name: Checkout Code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2.2.2
|
||||||
- name: Generate Build Metadata
|
- name: Generate Build Metadata
|
||||||
run: |
|
run: |
|
||||||
chmod +x scripts/generate_build_metadata.sh
|
chmod +x scripts/generate_build_metadata.sh
|
||||||
@@ -212,7 +212,7 @@ jobs:
|
|||||||
echo "tag=main-${SHORT_SHA}" >> "$GITHUB_OUTPUT"
|
echo "tag=main-${SHORT_SHA}" >> "$GITHUB_OUTPUT"
|
||||||
echo "image=ghcr.io/${{ github.repository_owner }}/docuelevate:main-${SHORT_SHA}" >> "$GITHUB_OUTPUT"
|
echo "image=ghcr.io/${{ github.repository_owner }}/docuelevate:main-${SHORT_SHA}" >> "$GITHUB_OUTPUT"
|
||||||
- name: Checkout k8s-cluster-state
|
- name: Checkout k8s-cluster-state
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2.2.2
|
||||||
with:
|
with:
|
||||||
repository: christianlouis/k8s-cluster-state
|
repository: christianlouis/k8s-cluster-state
|
||||||
token: ${{ secrets.GH_PAT }}
|
token: ${{ secrets.GH_PAT }}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ jobs:
|
|||||||
build-mode: none
|
build-mode: none
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@v4
|
uses: github/codeql-action/init@v4
|
||||||
|
|||||||
@@ -23,13 +23,13 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Code
|
- name: Checkout Code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5.4.0
|
||||||
with:
|
with:
|
||||||
python-version: '3.11'
|
python-version: '3.11'
|
||||||
cache: 'pip'
|
cache: 'pip'
|
||||||
|
|||||||
@@ -28,13 +28,13 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout PR branch
|
- name: Checkout PR branch
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.head_ref }}
|
ref: ${{ github.head_ref }}
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5.4.0
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
|
|
||||||
|
|||||||
+66
-66
@@ -1,66 +1,66 @@
|
|||||||
fastapi[all] # Web framework with all extras
|
fastapi[all]!=0.136.3 # Web framework with all extras
|
||||||
uvicorn # ASGI server
|
uvicorn # ASGI server
|
||||||
celery # Task queue
|
celery # Task queue
|
||||||
redis # Message broker for Celery
|
redis # Message broker for Celery
|
||||||
sqlalchemy # Database ORM
|
sqlalchemy # Database ORM
|
||||||
pydantic # Data validation
|
pydantic # Data validation
|
||||||
cryptography>=41.0.0 # Encryption for sensitive settings in database
|
cryptography>=41.0.0 # Encryption for sensitive settings in database
|
||||||
openai # GPT integration for metadata extraction
|
openai # GPT integration for metadata extraction
|
||||||
pypdf>=3.9.0 # PDF processing for text extraction, metadata editing and rotation (upgraded from PyPDF2 to fix CVE-2023-36464)
|
pypdf>=3.9.0 # PDF processing for text extraction, metadata editing and rotation (upgraded from PyPDF2 to fix CVE-2023-36464)
|
||||||
requests # HTTP client
|
requests # HTTP client
|
||||||
click>=8.0.0 # CLI framework for docuelevate command
|
click>=8.0.0 # CLI framework for docuelevate command
|
||||||
puremagic>=1.25,<2.0 # File type detection (pure Python)
|
puremagic>=1.25,<2.0 # File type detection (pure Python)
|
||||||
filetype>=1.2.0,<2.0 # File type detection fallback (pure Python)
|
filetype>=1.2.0,<2.0 # File type detection fallback (pure Python)
|
||||||
dropbox>=11.36.0 # Dropbox integration
|
dropbox>=11.36.0 # Dropbox integration
|
||||||
azure-ai-documentintelligence # Azure OCR service
|
azure-ai-documentintelligence # Azure OCR service
|
||||||
authlib>=1.6.5 # Authentication - fixed security vulnerabilities (GHSA-xxx)
|
authlib>=1.6.5 # Authentication - fixed security vulnerabilities (GHSA-xxx)
|
||||||
python-dotenv # Environment variables
|
python-dotenv # Environment variables
|
||||||
starlette>=0.49.1 # ASGI toolkit (used by FastAPI) - fixed DoS vulnerability
|
starlette>=0.49.1 # ASGI toolkit (used by FastAPI) - fixed DoS vulnerability
|
||||||
alembic # Database migrations
|
alembic # Database migrations
|
||||||
slowapi>=0.1.9 # Rate limiting middleware for FastAPI
|
slowapi>=0.1.9 # Rate limiting middleware for FastAPI
|
||||||
|
|
||||||
# Google Drive API
|
# Google Drive API
|
||||||
google-api-python-client>=2.79.0
|
google-api-python-client>=2.79.0
|
||||||
google-auth>=2.22.0
|
google-auth>=2.22.0
|
||||||
google-auth-oauthlib>=1.0.0
|
google-auth-oauthlib>=1.0.0
|
||||||
|
|
||||||
# OneDrive/Microsoft Graph API
|
# OneDrive/Microsoft Graph API
|
||||||
msgraph-core>=1.0.0
|
msgraph-core>=1.0.0
|
||||||
msal>=1.20.0
|
msal>=1.20.0
|
||||||
|
|
||||||
# AWS S3
|
# AWS S3
|
||||||
boto3>=1.28.0
|
boto3>=1.28.0
|
||||||
|
|
||||||
# SFTP
|
# SFTP
|
||||||
paramiko>=3.4.0 # SSH/SFTP implementation for Python (LGPL license)
|
paramiko>=3.4.0 # SSH/SFTP implementation for Python (LGPL license)
|
||||||
|
|
||||||
# iCloud Drive
|
# iCloud Drive
|
||||||
pyicloud>=2.4.0 # Unofficial Apple iCloud API client (MIT license)
|
pyicloud>=2.4.0 # Unofficial Apple iCloud API client (MIT license)
|
||||||
|
|
||||||
# Evernote
|
# Evernote
|
||||||
evernote3>=1.25.14 # Evernote Cloud API SDK for Python 3 (BSD license)
|
evernote3>=1.25.14 # Evernote Cloud API SDK for Python 3 (BSD license)
|
||||||
|
|
||||||
# Safe XML parsing (protection against XML bomb / XXE attacks)
|
# Safe XML parsing (protection against XML bomb / XXE attacks)
|
||||||
defusedxml>=0.7.1
|
defusedxml>=0.7.1
|
||||||
|
|
||||||
# Notification service
|
# Notification service
|
||||||
apprise>=1.4.0
|
apprise>=1.4.0
|
||||||
|
|
||||||
# AI provider aggregator - enables Anthropic, Gemini, Ollama, and 100+ LLM providers
|
# AI provider aggregator - enables Anthropic, Gemini, Ollama, and 100+ LLM providers
|
||||||
litellm>=1.0.0,<2.0.0
|
litellm>=1.0.0,<2.0.0
|
||||||
|
|
||||||
# Self-hosted OCR engines (optional – only required when the provider is enabled)
|
# Self-hosted OCR engines (optional – only required when the provider is enabled)
|
||||||
pytesseract>=0.3.10 # Python wrapper for Tesseract OCR
|
pytesseract>=0.3.10 # Python wrapper for Tesseract OCR
|
||||||
pdf2image>=1.17.0 # Convert PDF pages to images (used by Tesseract and EasyOCR providers)
|
pdf2image>=1.17.0 # Convert PDF pages to images (used by Tesseract and EasyOCR providers)
|
||||||
ocrmypdf>=16.0.0,<18.0.0 # Post-processing: embeds searchable text layers into PDFs via Tesseract
|
ocrmypdf>=16.0.0,<18.0.0 # Post-processing: embeds searchable text layers into PDFs via Tesseract
|
||||||
meilisearch>=0.31.0 # Full-text search engine client
|
meilisearch>=0.31.0 # Full-text search engine client
|
||||||
stripe>=7.0.0,<16.0.0 # Stripe billing SDK (MIT license)
|
stripe>=7.0.0,<16.0.0 # Stripe billing SDK (MIT license)
|
||||||
|
|
||||||
# Error and performance monitoring
|
# Error and performance monitoring
|
||||||
sentry-sdk[fastapi,celery,sqlalchemy]>=2.20.0,<3.0.0
|
sentry-sdk[fastapi,celery,sqlalchemy]>=2.20.0,<3.0.0
|
||||||
|
|
||||||
# GraphQL API
|
# GraphQL API
|
||||||
strawberry-graphql[fastapi]>=0.243.0,<1.0.0
|
strawberry-graphql[fastapi]>=0.243.0,<1.0.0
|
||||||
|
|
||||||
aiofiles>=24.1.0 # Asynchronous file I/O support
|
aiofiles>=24.1.0 # Asynchronous file I/O support
|
||||||
segno>=1.6.0 # Pure-Python QR code generator (server-side rendering, no Pillow dependency)
|
segno>=1.6.0 # Pure-Python QR code generator (server-side rendering, no Pillow dependency)
|
||||||
|
|||||||
Reference in New Issue
Block a user