Skip to content

Conversation

@haileyok
Copy link
Collaborator

right now, there isn't a good way to configure or disable the execution result store. the only way i found was to use register_execution_result_store() in register_plugins but explicitly create and return a noop ExecutionResultStore. there's a misleading env var right now in the docker-compose.yml called OSPREY_EXECUTION_RESULT_STORAGE_BACKEND that doesn't seem to do anything as well. this results in the worker failing to process events as the requests to the minio store simply fail.

here, i took the similar route that exists for configuring the input stream

  • create a new ExecutionResultStorageBackendType enum with Bigtable, GCS, Minio, or "plugin" as options, as well as a simple "None" option
  • create a "chooser" that returns the supplied backend type
  • update the sink register to use the new chooser rather than directly calling bootstrap_execution_result_store

execution_result_store = bootstrap_execution_result_store(config=config)

storage_backend_type = ExecutionResultStorageBackendType(
config.get_str('OSPREY_EXECUTION_RESULT_STORAGE_BACKEND', 'none')
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should none be the default, or should it be minio like the current behavior would result in?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think none, because minio is extra setup cost;

with that being said, i think we can have minio setup in the example plugins (?) we talked about moving it there during our sync today

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ya for now i left it here

def register_execution_result_store(config: Config) -> ExecutionResultStore:

seems like a fine thing tho to move to examples, i can clean that up if ppl have opinions on what to do with it

from enum import StrEnum, auto


class ExecutionResultStorageBackendType(StrEnum):
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

afaict, the ones i added here are the only ones that exist

Comment on lines +496 to +498
if storage_backend is None:
raise AssertionError('No storage backend registered')

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

afaict, it makes sense to raise here. the codepaths i see calling bootstrap_execution_result_storage_service are all in the ui api or in one of the cli tools, and they probably should be raising an error when there isn't a configured backend.

@haileyok haileyok marked this pull request as ready for review October 16, 2025 20:19
@haileyok
Copy link
Collaborator Author

atp i only tested that this works with "none" as an option, i'll run with minio in a bit to make sure that still works

execution_result_store = bootstrap_execution_result_store(config=config)

storage_backend_type = ExecutionResultStorageBackendType(
config.get_str('OSPREY_EXECUTION_RESULT_STORAGE_BACKEND', 'none')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think none, because minio is extra setup cost;

with that being said, i think we can have minio setup in the example plugins (?) we talked about moving it there during our sync today

@julietshen
Copy link
Member

hi @haileyok ! Is this PR ready for review?

@haileyok haileyok requested a review from cmttt as a code owner January 9, 2026 22:53
@haileyok
Copy link
Collaborator Author

haileyok commented Jan 9, 2026

@julietshen it used to be, though I'm not sure what all has changed since I opened the PR...i do think its still needed though if you're not using minio iirc (i use minio for my own instance so haven't tried recently). i fixed merge conflicts i think

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants