Files
hermes-skills/skills/devops/infrastructure-automation/references/vehicle-database-maintenance.md
T

92 lines
3.1 KiB
Markdown

# Vehicle Database — 2015+ 400+ HP Production Cars
## Source of truth
- **Live URL:** https://core.itpropartner.com/vehicles.json
- **Local copy (Caddy):** /var/www/static/vehicles.json
- **Portal copy:** /root/portal-mockup/vehicles.json
- **Caddy config:** core.itpropartner.com serves static files from /var/www/static/
## Database Stats (as of Jul 7, 2026)
- **47 makes** — every global automaker
- **373 models** — every production 2015+ car with 400+ HP
- **1,433 year-HP data points**
## Data Structure
```
{
"Make": {
"Model": {
"Year": HP,
"Year": HP,
...
},
...
},
...
}
```
Example:
```json
{
"Ferrari": {
"296 GTB": {
"2022": 819,
"2023": 819,
"2024": 819,
"2025": 819
}
}
}
```
## Maintenance Rules
1. **New model launches** — When new model years launch (2027s, mid-cycle refreshes), add them proactively within a week of announcement
2. **Corrections** — User reports missing cars (like ZR1 year ranges). Add immediately, verify with the user
3. **No snippet updates needed** — The Apex WPForms form fetches live from the JSON endpoint. Updating the JSON is sufficient
4. **HP values** — use manufacturer claimed horsepower. For EVs, use combined system HP
5. **Sorting** — Makes alphabetically, models alphabetically, years descending (newest first)
6. **Years are strings**`"2025"` not `2025`. The vehicle registration form expects string keys.
7. **HP is integer** — No decimal points.
## Deploy Updates
After editing vehicles.json in portal-mockup, you MUST copy to the web root:
```bash
cp /root/portal-mockup/vehicles.json /var/www/static/vehicles.json
```
Then verify via curl:
```bash
curl -s https://core.itpropartner.com/vehicles.json | python3 -c "import sys,json; d=json.load(sys.stdin); print(len(d.keys()), 'makes')"
```
## Common Maintenance Tasks
### Add a missing year to a model
```python
data['Ferrari']['296 GTB']['2025'] = 819 # same HP as existing year
```
### Add a missing model
```python
data['Ferrari']['SF90 XX Spider'] = {"2024": 1016}
```
## PITFALLS
- **User may notice missing models via customer feedback** — This is the primary signal. When a participant can't find their car in registration, check if the model exists in the DB. If not, add it.
- **Ferrari "Speciale" variants** — Ferrari does not produce a production model called "Speciale" for the 296 line. Only GTB (coupe) and GTS (spider) exist.
- **Current as of Jul 2026** — Years should be kept current. If user reports years are missing, add the current year +1.
## Apex Form Integration
- Form fetches from `https://core.itpropartner.com/vehicles.json` (HTTPS, CORS-enabled)
- WPForms HTML Content field embeds JS snippet that populates cascading dropdowns
- Make → Model → Year → Color → HP display
- Existing WPForms snippet at `/root/.hermes/references/apex-vreg-live.html`
## Significance
This is a showcase project for IT Pro Partner. Every missing car that gets corrected makes the Apex form more reliable and builds trust. Accuracy here directly leads to more MSP tech projects.