OpenFn / OpenFn/kit

It's too hard to sync sandboxes

Open
#1,442 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
21
Forks
23
Avg merge
1d 22h
Merged PRs (30d)
17

Description

I've been trying this morning to:

  • clone a project in the app and load it into my local server (this works well with v1 and v2 deploy, although an Import Project would be nice!)
  • clone a sandbox from the same project and load it as a sandbox locally

The sandbox step just isn't working well. I get errors (often cryptic) in v1 and v2 sync when trying to deploy the sandbox spec.

Because I'm not sure how to resolve the parent id, I've done this by creating a sandbox in my local app from the local main... and then what I want to do is force-push the sandbox spec into it. But that gives rise to all these errors (which I may try to document later)

The problem of course is that as spec file doesn't have a parentid field. It can't really.

A better solution would be to deploy with a --parentId flag. Which means I can take any spec file and deploy it as a new sandbox to some other project, creating the parent id link.

So what I want is:

openfn project deploy sandbox.yaml --parent main --new`

Which means:

  • Deploy the spec in sandbox.yaml (which could be v1 or v2)
  • Set the parent id to the project aliased to main (I can pass a UUID here too)
  • Create the project as new (if posting a spec file with no state, this should probably be the default)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the project deploy command and the existing v1 and v2 sync paths described in the issue; trace how sandbox specs currently resolve parent IDs. Define how --parentId or the --parent main --new form should create a sandbox from a v1 or v2 spec, including UUID aliases and specs without state. Done means the documented command deploys the spec and establishes the requested parent link.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.