API authentication methods
curl -H "Authorization: Bearer dg_live_..." \ https://api.getdatagate.com/v1/datasets/discover
curl -X POST -H "Authorization: Bearer <jwt>" \ https://api.getdatagate.com/v1/auth/api-keys
{"api_key": "dg_live_abc123..."}
curl -X DELETE -H "Authorization: Bearer <jwt>" \ https://api.getdatagate.com/v1/auth/api-keys
curl -X POST https://api.getdatagate.com/v1/auth/login \ -H "Content-Type: application/json" \ -d '{"email": "user@example.com", "password": "..."}'
{"token": "<temporary_token>", "message": "verification code sent"}
curl -X POST https://api.getdatagate.com/v1/auth/login/verify \ -H "Content-Type: application/json" \ -d '{"token": "<temporary_token>", "code": "123456"}'
{"access_token": "eyJ..."}
refresh_token
curl -X POST https://api.getdatagate.com/v1/auth/refresh \ --cookie "refresh_token=..."