Skip to content

Configure folder to injest static list of "startup workflows"  #417

@alvin

Description

@alvin

What would you like to be added:

  • specify a folder to read for yml/json files containing workflows that auto-populate into Synapse on startup.

Why is this needed:

  • It's a simple "lowest common denominator" way to implement/orchestrate a fully functional solution/backend using synapse
  • as a (potential) builder of an external system that would depend on Synapse, I would require my full working solution config to be versioned intuitively in my main repository or monorepo without depending on the Garnet backing store's persistence layer as the source of truth for system behaviours.

Additional sub-features/considerations (nice-to-haves):

  • include a default workflow config folder co-located near or as part of the orchestration config? (eg. docker-compose, k8s, etc) so that all of the "how we integrate synapse" stuff is clearly versioned together
  • support "forgetting" / overwriting Garnet-persisted workflow config on startup when this config is enabled
  • support "flushing" runtime changes to the workflows from Garnet out to the config folder/storage endpoint (actually I think I may have noticed some "export" features already?)
  • support for "glob" style patterns to filter subsets of the folder (eg. for use-cases where the workflows must be mixed in with other config files)
  • support for varied targets (eg. subdirectories?) in different startup scenarios (eg. multi-tenancy / other fancy scenarios)
  • support for external object storage as data source instead of filesystem (eg. amazon s3 / azure blob storage, etc)

@cdavernas I've added this one per our discussion as well. LMK what you think.

Metadata

Metadata

Assignees

Labels

app: apiConcerns the APIapp: cliConcerns the Command Line Interfacepriority: lowIndicates a low priority issuetype: enhancementNew feature or requestweight: 3An issue with an average development impact

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions