Skip to content

Add support for GEE service account credentials #773

Open
@kevinlacaille

Description

@kevinlacaille

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}

Current test:

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions