Getting Started
Single page quick start: prerequisites, environment variables, validation, usage, troubleshooting & security.
1. Install
pip install dsis-client
2. Prerequisites
You need:
- Azure AD app registration (client id + secret).
- Consent/access to the DSIS access application.
- DSIS username & password for target environment.
- Subscription key for the Enterprise product in APIM portal.
Treat all identifiers and secrets as confidential; never store them in source control.
3. Environment Variables
Define (placeholder names only):
DSIS_TENANT_ID=<tenant>
DSIS_CLIENT_ID=<client-id>
DSIS_CLIENT_SECRET=<secret>
DSIS_ACCESS_APP_ID=<access-app-id>
DSIS_USERNAME=<dsis-user>
DSIS_PASSWORD=<dsis-password>
DSIS_SUBSCRIPTION_KEY_DSAUTH=<subscription-key-for-dsauth>
DSIS_SUBSCRIPTION_KEY_DSDATA=<subscription-key-for-dsdata>
Load via your platform (shell export, CI variables, secret manager). Avoid committing real values.
Optional Validation Snippet
import os
required = [
"DSIS_TENANT_ID", "DSIS_CLIENT_ID", "DSIS_CLIENT_SECRET",
"DSIS_ACCESS_APP_ID", "DSIS_USERNAME", "DSIS_PASSWORD",
"DSIS_SUBSCRIPTION_KEY_DSAUTH", "DSIS_SUBSCRIPTION_KEY_DSDATA"
]
missing = [v for v in required if not os.getenv(v)]
if missing:
raise SystemExit(f"Missing variables: {', '.join(missing)}")
4. Configuration & Usage
from dsis_client import DSISClient, DSISConfig, Environment
import os
config = DSISConfig(
environment=Environment.PROD,
tenant_id=os.getenv("DSIS_TENANT_ID"),
client_id=os.getenv("DSIS_CLIENT_ID"),
client_secret=os.getenv("DSIS_CLIENT_SECRET"),
access_app_id=os.getenv("DSIS_ACCESS_APP_ID"),
dsis_username=os.getenv("DSIS_USERNAME"),
dsis_password=os.getenv("DSIS_PASSWORD"),
subscription_key_dsauth=os.getenv("DSIS_SUBSCRIPTION_KEY_DSAUTH"),
subscription_key_dsdata=os.getenv("DSIS_SUBSCRIPTION_KEY_DSDATA")
)
client = DSISClient(config)
if client.test_connection():
# Get data - schema refers to data schemas like "Well", "Basin", "Fault"
data = client.get(district_id="<district-id>", field="<field-name>", schema="Basin")
5. Flow Summary
- Acquire Azure AD token (internal)
- Exchange for DSIS token
- Perform data calls with both tokens + subscription key
6. Common Issues
| Symptom | Likely Cause | Action |
|---|---|---|
| 401 Unauthorized | Wrong / expired secret or missing consent | Re-issue secret, confirm consent |
| 403 Forbidden | Access app id or subscription key mismatch | Verify values & product subscription |
| 404 / empty | Endpoint/table/record not present | Check spelling / availability |
| Timeout | Network / proxy restrictions | Test connectivity, configure proxy |
7. Security Reminders
- Never print secrets.
- Rotate secrets & subscription keys.
- Separate credentials per environment.
- Prefer managed secret stores (e.g. Key Vault) over flat files.
8. Next
See api/index.md for method & configuration summary.