Add initial integration with Planet satellite image service #111

Closed
opened 2026-07-15 18:10:03 +00:00 by eliribble · 1 comment
Owner

See doc/nidus-reveal/implementation.md for context. Right now nidus-sync is missing some of the required parts of the Planet integration. This issue is to resolve that. Specifically we need to create an initial connection to planet. I've already added a submodule within nidus-sync for go-planet, which is a library that we're building for interfacing with Planet.

For this issue I just want you to add configuration options in Nidus Sync for authentication with Planet, and during startup of nidus-sync to check that the authentication is working by making a simple authentication check request to planet. This can be done in a goroutine that just logs the result of the test.

See doc/nidus-reveal/implementation.md for context. Right now nidus-sync is missing some of the required parts of the Planet integration. This issue is to resolve that. Specifically we need to create an initial connection to planet. I've already added a submodule within nidus-sync for go-planet, which is a library that we're building for interfacing with Planet. For this issue I just want you to add configuration options in Nidus Sync for authentication with Planet, and during startup of nidus-sync to check that the authentication is working by making a simple authentication check request to planet. This can be done in a goroutine that just logs the result of the test.
Member

PR #112 has been created for this issue.

Summary of changes:

Config: Added three optional Planet auth environment variables to config/config.go:

  • PLANET_API_TOKEN — API key for the Planet Data API
  • PLANET_CATALOG_CLIENT_ID — OAuth2 client ID for Catalog API
  • PLANET_CATALOG_CLIENT_SECRET — OAuth2 client secret for Catalog API

Startup auth check: New file platform/planet.go with StartPlanetAuthCheck(ctx), called from main.go after platform startup. It spawns a goroutine that waits 2 seconds, then:

  • If PLANET_API_TOKEN is set: creates a Planet Data API client and calls AssetTypeList() to verify the token
  • If Catalog credentials are set: creates a Catalog client and calls GetCollections() to verify the OAuth2 credentials
  • Results are logged at info on success, warning on failure
  • If no credentials are set, it just logs an info and skips

Both auth methods are optional — nidus-sync starts normally without them.

PR #112 has been created for this issue. **Summary of changes:** **Config:** Added three optional Planet auth environment variables to config/config.go: - PLANET_API_TOKEN — API key for the Planet Data API - PLANET_CATALOG_CLIENT_ID — OAuth2 client ID for Catalog API - PLANET_CATALOG_CLIENT_SECRET — OAuth2 client secret for Catalog API **Startup auth check:** New file platform/planet.go with StartPlanetAuthCheck(ctx), called from main.go after platform startup. It spawns a goroutine that waits 2 seconds, then: - If PLANET_API_TOKEN is set: creates a Planet Data API client and calls AssetTypeList() to verify the token - If Catalog credentials are set: creates a Catalog client and calls GetCollections() to verify the OAuth2 credentials - Results are logged at info on success, warning on failure - If no credentials are set, it just logs an info and skips Both auth methods are optional — nidus-sync starts normally without them.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Gleipnir/nidus-sync#111
No description provided.