No description
Find a file
DJP dd77b199e0 Initial commit: Meta File Server Query Application
- Flask web application for querying Oliver metafile server
- Replicates Make.com workflow for job data retrieval
- Two-stage process: XML client extraction → JSON data retrieval
- Clean HTML interface with responsive design
- Comprehensive error handling and SSL fixes
- Complete documentation and installation guides

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-09 15:26:40 -04:00
templates Initial commit: Meta File Server Query Application 2025-09-09 15:26:40 -04:00
.gitignore Initial commit: Meta File Server Query Application 2025-09-09 15:26:40 -04:00
AI COMPANION Metafile Server Grabber.blueprint.json Initial commit: Meta File Server Query Application 2025-09-09 15:26:40 -04:00
app.py Initial commit: Meta File Server Query Application 2025-09-09 15:26:40 -04:00
INSTALL.md Initial commit: Meta File Server Query Application 2025-09-09 15:26:40 -04:00
README.md Initial commit: Meta File Server Query Application 2025-09-09 15:26:40 -04:00
requirements.txt Initial commit: Meta File Server Query Application 2025-09-09 15:26:40 -04:00
run.py Initial commit: Meta File Server Query Application 2025-09-09 15:26:40 -04:00
start.sh Initial commit: Meta File Server Query Application 2025-09-09 15:26:40 -04:00

Meta File Server Query Application

A Python Flask web application that replicates the Make.com workflow for querying the Oliver metafile server to retrieve job information based on deliverable numbers.

Features

  • Two-stage workflow: First fetches XML to extract client information, then retrieves JSON data
  • Secure authentication: Uses MD5 checksum authentication matching the original blueprint
  • Clean web interface: Simple HTML form with responsive design
  • Error handling: Comprehensive error handling for network issues, SSL problems, and parsing errors
  • Portable: Self-contained with virtual environment for easy deployment

Quick Start

Option 1: Use the startup script

./start.sh

Option 2: Manual setup

# Create and activate virtual environment
python3 -m venv meta-server-venv
source meta-server-venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run the application
python run.py

Then open your browser to: http://localhost:5000

Usage

  1. Enter a job/deliverable number in the web form
  2. Click "Query Job Information"
  3. The application will:
    • Fetch the XML file from the metafile server
    • Extract the client name from the jobpath
    • Retrieve the corresponding JSON data using the client information
    • Display the results in a formatted view

API Endpoints

  • GET / - Main web interface
  • GET /api/job/<job_number> - Retrieve job information as JSON
  • GET /api/health - Health check endpoint

Example API Response

{
  "success": true,
  "job_number": "6046034",
  "client": "ADIDAS",
  "data": {
    "JobSpecification": {
      // ... job data ...
    }
  }
}

Configuration

The application uses these default settings:

  • Metafile Server: https://metafile.oliver.solutions/getFile
  • API Key: $14W0TF~8FL (from original blueprint)
  • Port: 5000
  • SSL Verification: Disabled (due to certificate issues)

Project Structure

META-FILE-SERVER-QUERY/
├── app.py                  # Main Flask application
├── run.py                  # Application runner
├── start.sh               # Startup script
├── requirements.txt       # Python dependencies
├── templates/
│   └── index.html        # Web interface
├── static/               # Static assets (empty)
└── meta-server-venv/     # Python virtual environment

Technical Details

Workflow Process

  1. XML Retrieval:

    • Constructs URL: {base_url}?root=XML&path={job_number}.xml&keyid=1&cs={checksum}
    • Checksum: MD5(api_key + "XML/" + filename)
  2. Client Extraction:

    • Parses XML for Set-Property with Property="jobpath"
    • Extracts client name using regex: ([A-Z][A-Z0-9_]*?)(?=/CAMPAIGNS/)
  3. JSON Retrieval:

    • Constructs URL: {base_url}?root=JSON_STORE&sub={client}&path={job_number}.json&keyid=1&cs={checksum}
    • Checksum: MD5(api_key + "JSON_STORE/" + client + "/" + filename)

Error Handling

  • SSL certificate verification disabled for metafile.oliver.solutions
  • Network timeout protection (30 seconds)
  • XML parsing error handling
  • JSON parsing error handling
  • HTTP status code validation

Moving to Production

To deploy this application:

  1. Copy the entire directory to your target server
  2. Install Python 3.7+ on the target system
  3. Run the startup script: ./start.sh
  4. For production: Consider using a WSGI server like Gunicorn:
    pip install gunicorn
    gunicorn -w 4 -b 0.0.0.0:5000 app:app
    

Troubleshooting

SSL Certificate Issues

The application automatically handles SSL certificate verification issues by disabling verification. This is necessary because the metafile server has certificate problems.

Connection Timeouts

The application has a 30-second timeout for requests. If you experience frequent timeouts, check your network connection to the metafile server.

Missing Job Data

If a job number returns an error, verify:

  1. The job number exists in the XML system
  2. The corresponding JSON file exists in the JSON_STORE
  3. The client name extraction is working correctly

Development

To modify or extend the application:

  1. Activate the virtual environment: source meta-server-venv/bin/activate
  2. Make your changes to app.py or templates/index.html
  3. Test your changes: python run.py
  4. The server will automatically reload in debug mode

Converted from Make.com blueprint: "AI COMPANION Metafile Server Grabber"