Open
Description
Is your feature request related to a problem? Please describe.
In order for a user to bring their own GCS service account, we must supply them with somewhere to input that SA's credentials in
order_request.google_earth_engine()
We already show support for the credentials field on our Dev Center's example request JSON.
Describe the solution you'd like
Current Google Earth Engine configuration:
def google_earth_engine(project: str, collection: str) -> dict:
'''Google Earth Engine configuration.
Parameters:
project: GEE project name.
collection: GEE Image Collection name.
'''
cloud_details = {
'project': project,
'collection': collection,
}
return {'google_earth_engine': cloud_details}
Proposed solution:
def google_earth_engine(project: str, collection: str, credentials: str) -> dict:
'''Google Earth Engine configuration.
Parameters:
project: GEE project name.
collection: GEE Image Collection name.
credentials: Base64-encoded credentials for the GEE service account
'''
cloud_details = {
'project': project,
'collection': collection,
'credentials': credentials,
}
return {'google_earth_engine': cloud_details}
def test_google_earth_engine():
gee_config = order_request.google_earth_engine('project', 'collection')
expected = {
'google_earth_engine': {
'project': 'project',
'collection': 'collection',
}
}
assert gee_config == expected
Proposed test:
def test_google_earth_engine():
gee_config = order_request.google_earth_engine('project', 'collection', 'credentials')
expected = {
'google_earth_engine': {
'project': 'project',
'collection': 'collection',
'credentials': '<REDACTED>',
}
}
assert gee_config == expected
Additional context
Many users like to bring their own service account over using Planet's, so this feature is likely to be used.