Default Strategies
This document describes the built-in (“default”) strategy implementations used by OCLI when an AIKP does not provide an override.
These strategies implement the common three-step pipeline:
makegeojson→ generate metadataupload→ move artifacts to COSpublish→ register document in docs DB
Where defaults are wired
The default TaskTemplate methods call the default strategy classes:
makegeojson→ocli/ai/makegeojson_strategy.py(GeoJsonStrategy)upload→ocli/ai/upload_strategy.py(UploadStrategy)publish→ocli/ai/publish_strategy.py(PublishStrategy)
The default TaskTemplate hooks are defined in ocli/classes/task_template.py.
GeoJsonStrategy (ocli/ai/makegeojson_strategy.py)
Purpose:
Generates a GeoJSON metadata file that describes the produced output and how it should be visualized/loaded.
How it works (high level):
Resolves the active recipe for the task.
Applies optional overrides stored in the Click context meta (COS key and friendly name overrides).
Computes output paths using
Filenames.Calls
ocli.ai.export_tools.make_geo_json()to build the GeoJSON metadata structure.Writes the metadata to
<output>.geojson(and optionally prints it if requested).
Overrides:
--cos-keyand--friendly-namecan override recipe defaults.If either starts with
+, it is treated as a suffix rather than a full replacement.
UploadStrategy (ocli/ai/upload_strategy.py)
Purpose:
Uploads generated artifacts (and their associated metadata documents) into Cloud Object Storage (COS).
How it works (high level):
Creates a COS client from the recipe COS credentials (unless
--dry-run).Computes filenames using
Filenames.Determines the COS key (ResultKey) by reading it from the metadata document when needed.
Chooses which files to upload:
Default behavior: uploads the standard set of output and metadata files derived from
Filenames.Recipe-driven behavior: if the recipe contains
upload_file_list, uploads those listed files instead.
Uploads each file with progress reporting (or logs intended actions in
--dry-runmode).If an “additional outputs” directory exists, its files are uploaded too.
Inputs:
Recipe COS credentials.
A metadata document containing
properties.ResultKey(used to infer COS destination when not explicitly provided).
PublishStrategy (ocli/ai/publish_strategy.py)
Purpose:
Publishes (posts) the metadata document into the docs database so it is visible to the UI.
How it works (high level):
Selects which JSON document to publish:
If the recipe provides
upload_file_list, publishes the configureddoc_jsonentry.Otherwise publishes the default document derived from
Filenames, falling back to the “cloud document” path if needed.If publishing a report workflow, publishes the report document when requested.
Calls
publish_json()fromocli/cli/publish.pyto write the document to the configured docs DB.
Overriding defaults
If your AIKP needs different behavior, override strategies rather than modifying these defaults. See Custom Strategies.