OpenFn / OpenFn/kit

Project: allow me to write a new project.yaml file without UUIDs

Open
#1,398 1 comment 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

When I pull a project with new sync, I am left with two different artefacts:

  • A "project.yaml" file (which really needs a better name) which is a direct representation of the project state. It's basically a state.json file, although formatted a bit more cleanly.
  • A "workflows" folder and some config files, which allow me to read and run the workflows of my project locally

We're currently on the verge of saying: the workflows folder is the unit of portability, that's the thing you share with other users.

But a folder is a bit awkward to share. You have to zip it and extract it.

So I'm dithering on the idea of expanded versus unexpected projects.

The projects.yaml file is an unexpanded project - everything in one file. But it's coupled with app state (UUIDs), and I don't want to share that stuff with other users. Plus it's bloaty.

So I need to be able to get a stateless single-file representation of a project. If I export the project from the app, this stateless single file should be what I get. It's exactly the same as the expanded workflows folder, just in one file.

Also important here is that all statey stuff is tucked inside .openfn keys, or something similar. So the state is additive and easy to see.

This is closely related to https://github.com/OpenFn/kit/issues/1169

So I'm repeating myself but this could be an openfn eject command. Or maybe I can pull, save or export with the --stateless command.

Of course the stateless file has no endpoint or domain, and doesn't live in .projects.

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 by reading the related issue #1169 and tracing the existing pull, save, export, and possible eject command paths. Done means a single-file stateless project representation can be shared without UUIDs, endpoint or domain data, or placement in .projects, with state grouped under .openfn keys.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.