Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(transform funcs): stepped transform functions, protected execution #2

Merged
merged 2 commits into from
Jun 4, 2018

Commits on Jun 4, 2018

  1. feat(Protector): stepped transform functions, protected execution

    after a chat with @dustmop we came to the conclusion that we need more control over what kind of things the user can do and when they can do them in the context of a transformation. The first example we could think of is preventing a transform script that lists a peers datasets & posting them to a random server with the http module.
    
    To solve this we're restructuring the execution of transform steps as a set of functions with standard names that the user can declare, and we will call. The stipulation is the output of each of these fuctions can only be data. Each of these opt-in "steps" execute in a predeclared order, with the result of the previous step being the input to the next step. The input to the initial step is any provided dataset data.
    b5 committed Jun 4, 2018
    Configuration menu
    Copy the full SHA
    f03e409 View commit details
    Browse the repository at this point in the history
  2. refactor(transform funcs): switch to passed-in environment dict

    after some thought & conversation, we've decided to go a different route with transform functions. Instead of using load methods & protectors, we'll provide each transform func with an "environment object" that comes loaded with the things they can do within the context of that transform function. We think this'll make it easier to reason about what can happen when.
    b5 committed Jun 4, 2018
    Configuration menu
    Copy the full SHA
    6bea3cb View commit details
    Browse the repository at this point in the history