Skip to content

Feature/john deer tap adapter#3

Open
PrudhviChanda wants to merge 2 commits intoagstack:mainfrom
PrudhviChanda:feature/john-deer-tap-adapter
Open

Feature/john deer tap adapter#3
PrudhviChanda wants to merge 2 commits intoagstack:mainfrom
PrudhviChanda:feature/john-deer-tap-adapter

Conversation

@PrudhviChanda
Copy link

Description

This PR introduces the John Deere TAP Adapter, enabling automated machinery and organization discovery from the John Deere Operations Center.

Key Features

  • OAuth2 Token Rotation: Implements automated refresh_token handling to manage short-lived access tokens.
  • Flexible Discovery: Probes both /equipment and /machines endpoints for cross-version compatibility.
  • Standardization: Transforms raw OEM JSON into standardized SIRUP and BITE formats.
  • DCO Compliant: All commits are signed-off.

Testing & Verification

I have included a comprehensive John_deer_TESTING.md file that allows reviewers to verify the adapter.

  • Unit Tests: Pass with 100% coverage on transformation logic (python3 -m unittest implementation.tests.test_johndeere_adapter).
  • Integration Test: I have provided a self-contained shell-block in TESTING.md that generates a temporary test_sync.py utility. This allows verification without modifying the core project's orchestration logic.

Verified Output:

✓ Registered TAP adapter: johndeere
🔎 Found 1 farmers in registry.
📡 Starting sync for PRUDHVI_FARMS_001...
🚀 SUCCESS: Data stored at pancake_data_lake/TEST_FARMS_001_test.json

### Sample Verified BITE Output
<details>
<summary>Click to view the generated JSON for Verification Tractor (8R 370)</summary>

```json
{
    "Header": {
        "id": "b9e198a4-33bd-480f-b667-9d0c92cdef3d",
        "geoid": "Test_FIELD_001",
        "timestamp": "2026-02-04T05:52:48.186183Z",
        "type": "oem_data",
        "source": {
            "pipeline": "TAP",
            "vendor": "johndeere",
            "sirup_type": "oem_data",
            "auto_generated": true
        }
    },
    "Body": {
        "sirup_data": {
            "organizations": [
                {
                    "name": "POC",
                    "type": "customer",
                    "id": "7086742"
                }
            ],
            "assets": [
                {
                    "asset_id": "sandbox-demo-01",
                    "category": "MACHINERY",
                    "brand": "John Deere",
                    "model": "8R 370",
                    "serial_number": "RW8370VIRTUAL",
                    "display_name": "Verification Tractor"
                }
            ]
        }
    },
    "Footer": {
        "hash": "dec6ae428f579c6f5ad1b5c461b69bc850b25bb9d2d3286cf383b38fba1072db",
        "tags": ["automated", "tap", "oem_data", "johndeere", "machinery"]
    }
}

Chanda, Prudhvi added 2 commits February 3, 2026 20:32
Signed-off-by: Chanda, Prudhvi <PrudhviChanda@Prudhvis-MacBook-Air.local>
Signed-off-by: Chanda, Prudhvi <PrudhviChanda@Prudhvis-MacBook-Air.local>
@PrudhviChanda
Copy link
Author

Hi @sumerjohal , @pranavnbapat , just pinging this PR. No rush at all, but I'd love to get some feedback when you have the bandwidth. Let me know if there are any architectural adjustments I need to make to get this ready for merging

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant