diff --git a/src/api/worker/batchjob.js b/src/api/worker/batchjob.js index 1bfe85a..1978629 100644 --- a/src/api/worker/batchjob.js +++ b/src/api/worker/batchjob.js @@ -80,7 +80,7 @@ async function createSTAC(storage, job, results) { for(const { filepath, datacube } of results) { const filename = path.basename(filepath); const stat = await fse.stat(filepath); - const asset = { + let asset = { href: path.relative(folder, filepath), roles: ["data"], type: Utils.extensionToMediaType(filepath), @@ -119,7 +119,8 @@ async function createSTAC(storage, job, results) { } } - assets[filename] = asset; + const params = datacube.getOutputFormatParameters(); + assets[filename] = Object.assign(asset, params.metadata); } const item = { stac_version: packageInfo.stac_version, diff --git a/src/formats/fileformat.js b/src/formats/fileformat.js index be34e35..a812d0b 100644 --- a/src/formats/fileformat.js +++ b/src/formats/fileformat.js @@ -27,6 +27,12 @@ export const NAME_PARAMETER = { default: null }; +export const METADATA_PARAMETER = { + type: 'object', + description: 'Additional STAC metadata to be added to the exported asset(s).', + default: {} +}; + export default class FileFormat { constructor(title, parameters = {}, description = '') { @@ -34,6 +40,7 @@ export default class FileFormat { this.description = description; this.parameters = parameters; this.addParameter('name', NAME_PARAMETER); + this.addParameter('metadata', METADATA_PARAMETER); } getParameters() {