Verification Report · stirling-pdf v3.0.2

NOT PUBLISHED   stirling-pdf-v3.0.2-20261002-001   verified_at 2026-10-02T16:58:42Z

Immutable inputs

App versionv3.0.2 ← release tag v3.0.2 · source 90d4c9b2f880
Image (exact tag)stirlingtools/stirling-pdf:3.0.2
Image digest (linux/amd64)sha256:50c0617a9017f130281b38056c1dfdf7701955da473413cf3a8ccf1c64d5820d
Index digestsha256:c195925341aa35ee5932d9c225edef48a92e46a1280963180d79619cb5f29e6e
Pulled asstirlingtools/stirling-pdf:3.0.2@sha256:50c0617a9017f130281b38056c1dfdf7701955da473413cf3a8ccf1c64d5820d via registry-1.docker.io
Platform contractami-0045d7fc2ad003464 · us-east-1/x86_64 · source=public (plat-us-east-1-x86_64-20261001-001)
Config revisionsapp 6a41f2be4d8e · compose a18809b740d9
Release typebug_fix — rule3: patch-only bump v3.0.0 -> (3, 0, 2)

Publish gate

CheckFieldResult
Compose startedchecks.compose_startedPassed
Container healthychecks.container_healthyPassed
Health check passedchecks.health_check_passedPassed
Application testschecks.tests_passedPassed
Screenshots capturedchecks.screenshots_generatedPassed
Screenshots publishedchecks.screenshots_uploadedFailed
Report publishedchecks.report_uploadedFailed
Manifest publishedchecks.verification_manifest_uploadedFailed
Platform contract validchecks.required_platform_contract_validPassed

Evidence

Health probeHTTP 200 — ready
Version assertionTrue actual 3.0.2 — 匹配(exact):kind=api_json_path 取到 '3.0.2',期望 '3.0.2'
Testspytest exit=0 .. [100%] ==================================== PASSES ==================================== =========================== short test summary info ============================ PASSED apps/stirling-pdf/tests/test_login.py::test_status_endpoint PASSED apps/stirling-pdf/tests/test_login.py::test_login_renders 2 passed in 1.84s
Container staterunning
Duration62.4s(2026-10-02T16:57:33Z → 2026-10-02T16:58:36Z)

Screenshots

login
login · Login page / 登录页

Application test output

pytest exit=0
..                                                                       [100%]
==================================== PASSES ====================================
=========================== short test summary info ============================
PASSED apps/stirling-pdf/tests/test_login.py::test_status_endpoint
PASSED apps/stirling-pdf/tests/test_login.py::test_login_renders
2 passed in 1.84s

Container logs (tail)

r (endpoints may have alternative implementations)
stirling-pdf-1  | 16:58:25.357 [main] INFO  s.s.S.config.EndpointConfiguration - Total disabled endpoints: 3. Disabled endpoints: form-detection, pdf-to-cbr, url-to-pdf
stirling-pdf-1  | 16:58:25.636 [main] INFO  s.s.c.c.i.InProcessClusterConfiguration - Cluster backplane: in-process (single node)
stirling-pdf-1  | 16:58:25.647 [main] INFO  s.s.S.s.PdfJsonFallbackFontService - Using fallback font location: classpath:/static/fonts/NotoSans-Regular.ttf
stirling-pdf-1  | 16:58:25.650 [main] INFO  s.s.S.s.pdfjson.PdfJsonFontService - [FONT-DEBUG] CFF conversion enabled, checking tool availability...
stirling-pdf-1  | 16:58:25.652 [main] INFO  s.s.S.s.pdfjson.PdfJsonFontService - [FONT-DEBUG] Python command '/opt/venv/bin/python3' is available
stirling-pdf-1  | 16:58:25.654 [main] INFO  s.s.S.s.pdfjson.PdfJsonFontService - [FONT-DEBUG] FontForge command 'fontforge' is available
stirling-pdf-1  | 16:58:25.655 [main] INFO  s.s.S.s.pdfjson.PdfJsonFontService - [FONT-DEBUG] Selected CFF converter method: python
stirling-pdf-1  | 16:58:26.451 [main] INFO  s.s.S.s.p.t.library.Type3FontLibrary - [TYPE3] Loaded 61 Type3 library entries (signatures=81, aliases=64) from classpath:/type3/library/index.json
stirling-pdf-1  | 16:58:26.606 [main] INFO  s.s.SPDF.service.VeraPDFService - VeraPDF Greenfield initialized successfully
stirling-pdf-1  | 16:58:26.733 [main] INFO  s.s.c.service.MobileScannerService - Mobile scanner temp directory: /tmp/stirling-pdf/stirling-mobile-scanner
stirling-pdf-1  | 16:58:26.910 [main] INFO  s.s.S.s.CertificateValidationService - Loading certificates from Java system trust store
stirling-pdf-1  | 16:58:26.919 [main] INFO  s.s.S.s.CertificateValidationService - Loaded 118 CA certificates from Java system trust store
stirling-pdf-1  | 16:58:26.919 [main] INFO  s.s.S.s.CertificateValidationService - Loading bundled Mozilla CA certificates from resources
stirling-pdf-1  | 16:58:26.937 [main] INFO  s.s.S.c.web.ReactRoutingController - Static files custom path: ./customFiles/static/
stirling-pdf-1  | 16:58:26.997 [main] INFO  s.s.c.service.TempFileCleanupService - Created LibreOffice temp directory: /tmp/stirling-pdf/stirling-pdf/libreoffice
stirling-pdf-1  | 16:58:26.997 [main] INFO  s.s.c.service.TempFileCleanupService - Running in Docker mode, using aggressive cleanup strategy
stirling-pdf-1  | 16:58:27.000 [main] INFO  s.s.c.service.TempFileCleanupService - Startup cleanup complete. Deleted 0 temporary files/directories
stirling-pdf-1  | 16:58:27.011 [main] INFO  s.software.common.util.FileMonitor - Monitoring directory: /app/pipeline/watchedFolders
stirling-pdf-1  | 16:58:27.012 [main] INFO  s.software.common.util.FileMonitor - Registered directory: /app/pipeline/watchedFolders
stirling-pdf-1  | 16:58:28.103 [main] INFO  s.s.p.f.catalog.ModelCatalogService - Loaded 3 Auto Form Detection model catalog entries
stirling-pdf-1  | 16:58:28.117 [main] INFO  s.s.p.f.s.FormDetectionModelManager - Activated pre-installed Auto Form Detection model 'ffdetr'
stirling-pdf-1  | 16:58:28.118 [main] INFO  s.s.p.f.s.FormDetectionModelManager - Auto Form Detection model 'ffdetr' is installed and ready
stirling-pdf-1  | 16:58:28.313 [main] INFO  s.s.p.security.service.UserService - MFA required set to true for user admin {mfaEnabled=false, mfaRequired=false}
stirling-pdf-1  | 16:58:28.360 [main] INFO  s.s.p.service.OrgOwnerService - Organization owner is admin (RECONCILE)
stirling-pdf-1  | 16:58:28.360 [main] WARN  s.s.p.service.OrgOwnerService - Organization owner admin has not completed first login; complete setup or use operator recovery before transferring ownership
stirling-pdf-1  | 16:58:28.375 [main] INFO  s.s.p.s.service.DatabaseService - Database export completed: configs/backup/db/backup_202610021658.sql
stirling-pdf-1  | 16:58:28.376 [main] INFO  s.s.p.s.service.DatabaseService - Checksum for backup_202610021658.sql: 0d7c0ead6c4514149df42a3547f383a1fdb725ade2417e71af949a4df6689c66
stirling-pdf-1  | 16:58:28.402 [main] INFO  s.s.p.s.service.DatabaseService - Database export completed: configs/backup/db/backup_202610021658.sql
stirling-pdf-1  | 16:58:28.403 [main] INFO  s.s.p.s.service.DatabaseService - Checksum for backup_202610021658.sql: b183faeabc3953486ad5e54c2e3cdb3f8a473190936a044d1ee72a526e64514d
stirling-pdf-1  | 16:58:28.420 [main] INFO  s.s.p.security.InitialSecuritySetup - Default admin user created: admin
stirling-pdf-1  | 16:58:28.481 [main] INFO  s.s.p.security.service.UserService - MFA required set to true for user STIRLING-PDF-BACKEND-API-USER {mfaEnabled=false, mfaRequired=false}
stirling-pdf-1  | 16:58:28.495 [main] INFO  s.s.p.s.service.DatabaseService - Database export completed: configs/backup/db/backup_202610021658.sql
stirling-pdf-1  | 16:58:28.496 [main] INFO  s.s.p.s.service.DatabaseService - Checksum for backup_202610021658.sql: 257e0b21f6ec388a39e98260aea8349923fb094b3657d2609bb7fec7eb4f3020
stirling-pdf-1  | 16:58:28.524 [main] INFO  s.s.p.s.service.DatabaseService - Database export completed: configs/backup/db/backup_202610021658.sql
stirling-pdf-1  | 16:58:28.524 [main] INFO  s.s.p.s.service.DatabaseService - Checksum for backup_202610021658.sql: 72c8d03da2ddde9c69d0923e93a3234dadce4011c2ff82ddc09edb47fa0f3113
stirling-pdf-1  | 16:58:28.538 [main] INFO  s.s.p.security.InitialSecuritySetup - Internal API user created: STIRLING-PDF-BACKEND-API-USER
stirling-pdf-1  | 16:58:28.546 [main] INFO  s.s.p.s.UserLicenseSettingsService - Existing installation detected. Grandfathering 5 users (current: 1, minimum: 5)
stirling-pdf-1  | 16:58:28.547 [main] WARN  s.s.p.s.UserLicenseSettingsService - GRANDFATHERING LOCKED: 5 users. This value can never be changed.
stirling-pdf-1  | 16:58:28.964 [main] INFO  s.s.p.s.c.SecurityConfiguration - No CORS allowed origins configured in settings.yml (system.corsAllowedOrigins); allowing all origins.
stirling-pdf-1  | 16:58:29.697 [main] INFO  s.software.common.service.JobQueue - Starting JobQueue lifecycle
stirling-pdf-1  | 16:58:29.718 [main] INFO  s.s.p.p.trigger.FolderWatchTrigger - Folder-watch trigger started (reconcile every 300s)
stirling-pdf-1  | 16:58:29.719 [main] INFO  s.s.p.policy.trigger.ScheduleTrigger - Schedule trigger started (sweep every 60s)
stirling-pdf-1  | 16:58:29.719 [main] INFO  s.s.p.policy.trigger.WebhookTrigger - Webhook trigger started (reconcile every 300s)
stirling-pdf-1  | 16:58:29.742 [scheduled-vt-2] INFO  s.s.c.service.TempFileCleanupService - Running scheduled temporary file cleanup
stirling-pdf-1  | 16:58:29.743 [scheduled-vt-2] INFO  s.s.common.util.TempFileManager - Cleaned up 0 old temporary files
stirling-pdf-1  | 16:58:29.743 [scheduled-vt-2] INFO  s.s.c.service.TempFileCleanupService - Cleaned up 0 registered temporary files
stirling-pdf-1  | 16:58:29.750 [main] INFO  s.software.SPDF.SPDFApplication - Started SPDFApplication in 13.543 seconds (process running for 13.98)
stirling-pdf-1  | 16:58:29.757 [main] WARN  o.s.c.events.SpringDocAppInitializer - SpringDoc /v1/api-docs endpoint is enabled by default. To disable it in production, set the property 'springdoc.api-docs.enabled=false'
stirling-pdf-1  | 16:58:29.757 [main] WARN  o.s.c.events.SpringDocAppInitializer - SpringDoc /swagger-ui.html endpoint is enabled by default. To disable it in production, set the property 'springdoc.swagger-ui.enabled=false'
stirling-pdf-1  | 16:58:29.784 [main] INFO  s.software.SPDF.SPDFApplication - Stirling-PDF running on port: 8080
stirling-pdf-1  | 16:58:29.786 [main] INFO  s.s.p.s.ServerCertificateService - Server certificate feature requires Pro or Enterprise license
stirling-pdf-1  | 16:58:29.825 [main] INFO  s.s.p.p.s.DefaultClassificationPolicySeeder - Seeded default Classification policy for team 1
stirling-pdf-1  | 16:58:29.828 [main] INFO  s.software.SPDF.SPDFApplication - Stirling-PDF Started.
stirling-pdf-1  | 16:58:29.828 [main] INFO  s.software.SPDF.SPDFApplication - Navigate to http://localhost:8080/

Raw manifest

{
  "schema_version": "1.0",
  "verification_id": "stirling-pdf-v3.0.2-20261002-001",
  "app": "stirling-pdf",
  "app_version": "v3.0.2",
  "release": {
    "source_repo": "Stirling-Tools/Stirling-PDF",
    "source_revision": "90d4c9b2f880ea1f1fa7e2e2d1e7e54fb7650244",
    "release_tag": "v3.0.2",
    "upstream_tag": "v3.0.2",
    "image_reference": "stirlingtools/stirling-pdf:3.0.2"
  },
  "container": {
    "image": "stirlingtools/stirling-pdf:3.0.2",
    "digest": "sha256:50c0617a9017f130281b38056c1dfdf7701955da473413cf3a8ccf1c64d5820d",
    "manifest_digest": "sha256:c195925341aa35ee5932d9c225edef48a92e46a1280963180d79619cb5f29e6e",
    "platform": "linux/amd64"
  },
  "platform": {
    "platform_verification_id": "plat-us-east-1-x86_64-20261001-001",
    "ami_id": "ami-0045d7fc2ad003464",
    "base_ami_source": "public",
    "source_ami_name": "ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*",
    "region": "us-east-1",
    "architecture": "x86_64"
  },
  "config": {
    "app_config_revision": "6a41f2be4d8e7d2d4aba692161eff81f365c9678",
    "compose_revision": "a18809b740d9b72dd044bf04395f58717871aa6a",
    "tests_revision": "4136a9fc8de221b57a8878a17ae7ecd5de3f5cb1",
    "template_revision": "c9350db2baff041f7af1051e500f8db9da8c749a"
  },
  "verification": {
    "application": "passed",
    "platform": "referenced",
    "tests": "passed"
  },
  "checks": {
    "compose_started": true,
    "container_healthy": true,
    "health_check_passed": true,
    "tests_passed": true,
    "screenshots_generated": true,
    "screenshots_uploaded": false,
    "report_uploaded": false,
    "verification_manifest_uploaded": false,
    "required_platform_contract_valid": true
  },
  "artifacts": {
    "screenshots": [
      {
        "scenario": "login",
        "file": "login.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/stirling-pdf/v3.0.2/login.png",
        "caption": {
          "en": "Login page",
          "zh": "登录页"
        }
      }
    ],
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunch/actions/runs/37037384940"
  },
  "website": {
    "app": "stirling-pdf",
    "app_version": "v3.0.2",
    "verification_id": "stirling-pdf-v3.0.2-20261002-001",
    "verification_run_id": "37037384940",
    "platform_verification_id": "plat-us-east-1-x86_64-20261001-001",
    "ami_id": "ami-0045d7fc2ad003464",
    "architecture": "x86_64",
    "region": "us-east-1",
    "display_name": {
      "en": "Stirling PDF",
      "zh": "Stirling PDF 工具箱"
    },
    "description": {
      "en": "Locally hosted web app for 50+ PDF operations: merge, split, OCR, convert",
      "zh": "自托管 PDF 全能工具箱:合并、拆分、OCR、转换等 50+ 操作"
    },
    "category": "productivity",
    "icon": "/icons/stirling-pdf.svg",
    "featured": true,
    "tags": [
      "pdf",
      "documents",
      "ocr"
    ],
    "features": [
      {
        "en": "Merge, split, rotate, compress PDFs in the browser",
        "zh": "浏览器中完成 PDF 合并、拆分、旋转、压缩"
      },
      {
        "en": "OCR with multi-language recognition",
        "zh": "多语言 OCR 文字识别"
      },
      {
        "en": "Convert between PDF and Office/image formats",
        "zh": "PDF 与 Office/图片格式互转"
      }
    ],
    "health": "passed",
    "status": "pending",
    "verified_at": "2026-10-02T16:58:42Z",
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunch/actions/runs/37037384940",
    "screenshots_order": [
      "login"
    ],
    "deploy": {
      "documentation_url": "https://docs.stirlingpdf.com",
      "regions": [
        "us-east-1"
      ],
      "instance_type": "t3.small",
      "data_volume_gb": 30,
      "container_port": 8080,
      "health_check_path": "/api/v1/info/status",
      "docker_image": "stirlingtools/stirling-pdf:3.0.2",
      "extra_environment": [],
      "template": {
        "url": "https://corenovalaunch-templates.s3.us-east-1.amazonaws.com/corenova-one-click.template.yaml",
        "revision": "c9350db2baff041f7af1051e500f8db9da8c749a"
      },
      "post_deploy": {
        "admin_path": "/login",
        "admin_setup": {
          "en": "2.x enables login by default: first visit opens /login; create the initial user per the upstream docs (initial login flow). There are no preset credentials.",
          "zh": "2.x 默认启用登录:首次访问落在 /login,按上游文档在初始登录流程中创建首个用户;没有预置账号密码。"
        },
        "notes": [
          {
            "en": "Processed files are kept only for the session and wiped on restart; nothing sensitive persists on the retained volume (/tmp/stirling-pdf) unless configured.",
            "zh": "处理过的文件仅在会话内保留、重启即清除;除非另行配置,保留数据卷(/tmp/stirling-pdf)不存放敏感内容。"
          }
        ]
      },
      "cost_estimate": {
        "monthly_usd": 23,
        "note": {
          "en": "Verified default in us-east-1: ~$15.2 t3.small + ~$4 for the 20 GB root and 30 GB data gp3 volumes + $3.65 public IPv4 per month. OCR/convert jobs are CPU-bound.",
          "zh": "us-east-1 已验证默认配置:t3.small 约 $15.2/月 + 20GB 系统盘与 30GB 数据盘 gp3 约 $4/月 + 公网 IPv4 约 $3.65/月;OCR/转换属 CPU 密集型。"
        }
      },
      "data_path": "/tmp/stirling-pdf"
    },
    "release": {
      "type": "bug_fix",
      "previous_version": "v3.0.0",
      "type_evidence": "rule3: patch-only bump v3.0.0 -> (3, 0, 2)"
    },
    "screenshots": [
      {
        "scenario": "login",
        "file": "login.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/stirling-pdf/v3.0.2/login.png",
        "caption": {
          "en": "Login page",
          "zh": "登录页"
        }
      }
    ]
  },
  "verification_run_id": "37037384940",
  "verified_at": "2026-10-02T16:58:42Z"
}