Skip to content

Quickstart Guide

Get started with IOSetu in under 10 minutes. This guide will help you parse your first AL3 file and understand the output.

Prerequisites

  • Docker installed on your system
  • An AL3 file to test with (or use our examples)

Step 1: Pull the Docker Image

From AWS Marketplace (Recommended):

# Authenticate with ECR
aws ecr get-login-password --region us-east-1 | \
  docker login --username AWS --password-stdin \
  709825985650.dkr.ecr.us-east-1.amazonaws.com

# Pull the image
docker pull 709825985650.dkr.ecr.us-east-1.amazonaws.com/priya-io-systems/iosetu:latest

Or for testing:

docker pull priyaiosystems/iosetu:latest

Step 2: Start the Container

docker run -d \
  --name iosetu \
  -p 8080:8080 \
  709825985650.dkr.ecr.us-east-1.amazonaws.com/priya-io-systems/iosetu:latest

Verify it's running:

curl http://localhost:8080/health
# Expected: OK

Step 3: Parse Your First AL3 File

Using cURL

curl -X POST \
  --data-binary "@your-policy.al3" \
  -H "Content-Type: application/octet-stream" \
  http://localhost:8080/v1/parse

Using Python

import requests

with open('your-policy.al3', 'rb') as f:
    response = requests.post(
        'http://localhost:8080/v1/parse',
        data=f.read(),
        headers={'Content-Type': 'application/octet-stream'}
    )

data = response.json()
print(f"Processing time: {data['processingTime']}")
print(f"Groups found: {len(data['data'])}")

Using Node.js

const fs = require('fs');
const axios = require('axios');

const fileData = fs.readFileSync('your-policy.al3');

axios.post('http://localhost:8080/v1/parse', fileData, {
  headers: {'Content-Type': 'application/octet-stream'}
})
.then(response => {
  console.log(`Processing time: ${response.data.processingTime}`);
  console.log(`Groups found: ${Object.keys(response.data.data).length}`);
})
.catch(error => console.error(error));

Step 4: Understand the Response

Response Structure

{
  "data": {
    "1MHG": {
      "Policy Number": "POL-123456",
      "Effective Date": "2024-01-15",
      ...
    },
    "2TRG": {
      "Transaction Type": "NB",
      ...
    }
  },
  "processingTime": "1.234ms"
}

Response Headers

Check validation status:

curl -I -X POST --data-binary "@policy.al3" http://localhost:8080/v1/parse

# Headers:
# X-IOSetu-Validation-Status: true
# X-IOSetu-Error-Count: 0
# X-IOSetu-Warning-Count: 2
# X-Processing-Time: 1.234ms

Step 5: Try Different Output Formats

JSON (Default)

curl -X POST --data-binary "@policy.al3" \
  -H "Accept: application/json" \
  http://localhost:8080/v1/parse

Parquet (for Analytics)

curl -X POST --data-binary "@policy.al3" \
  -H "Accept: application/x-parquet" \
  http://localhost:8080/v1/parse > output.parquet

NDJSON (for Streaming)

curl -X POST --data-binary "@policy.al3" \
  -H "Accept: application/x-ndjson" \
  http://localhost:8080/v1/parse

CSV (for Excel)

curl -X POST --data-binary "@policy.al3" \
  -H "Accept: text/csv" \
  http://localhost:8080/v1/parse > output.csv

Step 6: Validate Without Full Parsing

For quick validation checks:

curl -X POST --data-binary "@policy.al3" \
  http://localhost:8080/v1/validate

Response:

{
  "valid": true,
  "errors": [],
  "warnings": [
    {
      "severity": "warning",
      "message": "Optional field missing",
      "groupCode": "1MHG",
      "elementId": "OPFLD"
    }
  ]
}

Troubleshooting

Container won't start

# Check logs
docker logs iosetu

# Verify port is not in use
lsof -i :8080

Authentication errors with ECR

# Ensure AWS CLI is configured
aws configure

# Verify ECR access
aws ecr describe-repositories --region us-east-1

Health check fails

# Wait 10-15 seconds for startup
sleep 15
curl http://localhost:8080/health

Next Steps

Integration Paths

  1. Real-Time API: See Real-Time API Integration for synchronous parsing
  2. Batch Processing: See Batch ETL Pipeline for high-volume workflows
  3. Data Lake: See Data Lake Integration for analytics pipelines

Deployment


⏱️ Time to First Parse: < 5 minutes
📊 Supported Formats: JSON, Parquet, NDJSON, CSV
🔒 Data Security: Zero data exfiltration - runs entirely in your environment