jtdearmon commited on
Commit
8393360
·
verified ·
1 Parent(s): cdd3002

Deploy RFP Template Generator v16.1 metadata hotfix

Browse files
Files changed (5) hide show
  1. .gitignore +4 -1
  2. DEPLOYMENT_NOTES.md +12 -30
  3. README.md +7 -12
  4. app.py +0 -0
  5. requirements.txt +14 -5
.gitignore CHANGED
@@ -1,3 +1,6 @@
1
  __pycache__/
2
  *.py[cod]
3
- .DS_Store
 
 
 
 
1
  __pycache__/
2
  *.py[cod]
3
+ *.db
4
+ *.db-wal
5
+ *.db-shm
6
+ .env
DEPLOYMENT_NOTES.md CHANGED
@@ -1,34 +1,16 @@
1
- # Dearmon Analytics secure deployment notes
2
 
3
- Release: `v13-space-card-validation-and-proven-deployer-pattern (2026-08-18)`
4
 
5
- Target private Space: `DearmonAnalytics/RFP_Template_Generator`
6
 
7
- ## Deployment architecture
 
 
 
 
 
8
 
9
- This package follows the attached Business Calculus secure one-click deployment pattern:
10
-
11
- - `RUN_DEPLOYMENT.bat` selects the existing Anaconda, Miniconda, or Python installation.
12
- - It installs only a compatible `huggingface_hub` helper into that interpreter.
13
- - It does **not** create a local virtual environment and does **not** use PowerShell.
14
- - `deploy_to_huggingface.py` validates the encrypted Space package, validates the Space-card YAML before modifying the repository, creates or updates a private Gradio Space, stores secrets, uploads the five approved files, and checks build status.
15
-
16
- ## Required secrets
17
-
18
- - `APP_SOURCE_FERNET_KEY_V1` — refreshed with each application release
19
- - `OPENAI_API_KEY`
20
- - `TURSO_DATABASE_URL`
21
- - `TURSO_AUTH_TOKEN`
22
- - `RFP_DATA_FERNET_KEY_V1` — preserve across future updates
23
-
24
- ## Runtime variables
25
-
26
- - `RFP_CAPTURE_ENABLED=1`
27
- - `RFP_DB_REQUIRE_TURSO=1`
28
- - `RFP_CAPTURE_DOCUMENTS=1`
29
- - `RFP_CAPTURE_LLM_IO=1`
30
- - `RFP_STORE_PLAINTEXT_PREVIEWS=0`
31
- - `GRADIO_ANALYTICS_ENABLED=False`
32
- - `GRADIO_SSR_MODE=False`
33
- - `HF_HUB_DISABLE_TELEMETRY=1`
34
- - `APP_DEPLOYMENT_MODE=hf-space-encrypted`
 
1
+ # Deployment notes
2
 
3
+ Deployment package: v16.1-space-metadata-hotfix (2026-08-19)
4
 
5
+ Protected runtime: v16-prerequisite-auto-analysis-runtime-verification (2026-08-19)
6
 
7
+ - Single launch owner: root encrypted `app.py`.
8
+ - Protected source exports `build_demo()` and does not define or call `main()`.
9
+ - Generate RFP Template automatically refreshes missing or stale demographic/operational-fit analysis.
10
+ - Runtime logs print `v16-prerequisite-auto-analysis-runtime-verification` loader, source, and ready markers.
11
+ - Plotly mapping uses `Scattermap` / MapLibre rather than deprecated `Scattermapbox`.
12
+ - Turso documents, queries, model exchanges, analysis state, and generated templates remain encrypted.
13
 
14
+ - Hugging Face `short_description` is 52 characters, below the 60-character limit.
15
+ - The deployer validates this metadata length before saving secrets or uploading files.
16
+ - Windows Anaconda paths use literal backslashes; no control characters remain in the batch launcher.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md CHANGED
@@ -3,14 +3,15 @@ title: RFP Template Generator
3
  colorFrom: blue
4
  colorTo: green
5
  sdk: gradio
6
- sdk_version: 6.5.1
7
- python_version: "3.11"
8
  app_file: app.py
9
  pinned: false
10
  fullWidth: true
11
  header: mini
12
  disable_embedding: true
13
- short_description: Site selection and RFP template generation.
 
14
  tags:
15
  - consulting
16
  - site-selection
@@ -20,20 +21,14 @@ tags:
20
 
21
  # Dearmon Analytics RFP Template Generator
22
 
23
- Private encrypted Gradio application for natural-language Oklahoma County parcel screening, workforce and demographic research, operational-fit analysis, competitive location positioning, and branded Word RFP template generation.
24
 
25
- Website: https://dearmonanalytics.com/
26
 
27
- ## Required Space secrets
28
 
29
  - `APP_SOURCE_FERNET_KEY_V1`
30
  - `OPENAI_API_KEY`
31
  - `TURSO_DATABASE_URL`
32
  - `TURSO_AUTH_TOKEN`
33
  - `RFP_DATA_FERNET_KEY_V1`
34
-
35
- ## Persistence
36
-
37
- Uploaded documents, extracted text, site-search queries, parsed filters, OpenAI request/response payloads, analysis state, generated RFP frameworks, and generated Word templates are encrypted before they are written to Turso. Plaintext query previews are disabled in the deployed configuration.
38
-
39
- The repository contains only the authenticated encrypted loader and deployment metadata. The plaintext application source and both Fernet keys are not stored in the Space repository.
 
3
  colorFrom: blue
4
  colorTo: green
5
  sdk: gradio
6
+ sdk_version: 6.24.0
7
+ python_version: "3.12"
8
  app_file: app.py
9
  pinned: false
10
  fullWidth: true
11
  header: mini
12
  disable_embedding: true
13
+ startup_duration_timeout: 1h
14
+ short_description: Site selection, operational fit, and RFP generation.
15
  tags:
16
  - consulting
17
  - site-selection
 
21
 
22
  # Dearmon Analytics RFP Template Generator
23
 
24
+ Encrypted private Gradio application. Runtime release `v16-prerequisite-auto-analysis-runtime-verification (2026-08-19)`; deployment metadata hotfix `v16.1-space-metadata-hotfix`.
25
 
26
+ Version 16 automatically runs demographic and operational-fit analysis when the user generates a template and the prerequisite state is missing or stale. The protected source never launches itself; the root encrypted loader owns the only server launch. Plotly maps use the MapLibre `Scattermap` API.
27
 
28
+ Required Space secrets:
29
 
30
  - `APP_SOURCE_FERNET_KEY_V1`
31
  - `OPENAI_API_KEY`
32
  - `TURSO_DATABASE_URL`
33
  - `TURSO_AUTH_TOKEN`
34
  - `RFP_DATA_FERNET_KEY_V1`
 
 
 
 
 
 
app.py CHANGED
The diff for this file is too large to render. See raw diff
 
requirements.txt CHANGED
@@ -1,10 +1,19 @@
1
- gradio==6.5.1
2
- pandas==2.2.3
 
 
 
 
 
 
 
3
  PyMuPDF==1.26.7
4
  python-docx==1.2.0
5
- requests==2.32.5
6
  plotly==6.5.2
7
  shapely==2.1.2
8
  pyproj==3.7.2
9
- cryptography==46.0.4
10
- libsql
 
 
 
1
+ gradio==6.24.0
2
+ gradio-client==2.6.0
3
+ huggingface-hub==1.27.0
4
+ fastapi==0.141.1
5
+ starlette==1.6.0
6
+ jinja2==3.1.6
7
+ uvicorn==0.41.0
8
+ numpy==2.5.2
9
+ pandas==3.0.5
10
  PyMuPDF==1.26.7
11
  python-docx==1.2.0
12
+ requests==2.34.2
13
  plotly==6.5.2
14
  shapely==2.1.2
15
  pyproj==3.7.2
16
+ pillow==12.1.1
17
+ cryptography==46.0.7
18
+ libsql==0.1.11
19
+ openai==2.54.0