Beta testers wanted for Fibery script management tool

I’m writing a Node.js app that performs remote script (Javascript) management for your Fibery Buttons and Rules, using an undocumented Fibery API.

It can pull your automation script definitions from your Workspace and store them locally on your machine, then push them back, so you can manage and edit them locally, add them to source control, etc.

NOTE: This app exists to help you to manage the script actions in your existing Rules and Buttons, not create new ones.

Some other features it has:

  • A simple macro facility to allow scripts to “include” other source files (reuse your code in multiple scripts without duplication)
  • Restore automations from an earlier point in time

If you’re interested in helping me test and polish this app, LMK! :grinning:
It is fully functional but not exhaustively tested.


OVERVIEW

This is a Node.js app that uses UNDOCUMENTED Fibery.io API calls to get and update automation scripts (Javascript) in your Fibery.io Button and Rule automations. This allows you to write and manage your Fibery scripts locally with familiar tools (including source control).

COMMANDS

Usage: fibscripts { pull | push | purge | orphans | help {cmd} } [ options… ]

help [cmd]            Show help, optionally for a specific program command
pull                  Download and save Fibery workspace Button and Rule Javascript actions
push                  Push local Javascript Button and Rule actions back to Fibery workspace
purge --before {date} Delete cache entries older than the specified cutoff date
orphans               List orphaned local files and dirs that were deleted in Fibery

OPTIONS

--workspace   -w      Your Fibery workspace domain, e.g. "my.fibery.io" - or, the full path to the local workspace dir
--space       -s      Space   name filter
--db          -d      DB      name filter
--button      -b      Button  name filter
--rule        -r      Rule    name filter
--cache       -c      Use existing cached Space/DB info instead getting it from Fibery
--nogit       -g      Don't try to use git (when your local script files are not tracked in git)
--nofiles             Ignore local script files; use with `push` to restore automations from cache files
--yes         -y      Create/rename local files/directories as needed for pull operations
--fake        -f      Dry run - don't actually update or overwrite anything
--verbose     -v      Verbose output
--debug       -u      Debug output
--quiet       -q      Disable progress messages and spinners; only output a terse summary
--before {date-time}  End of range for cache files (matches before OR EQUAL)
--after  {date-time}  Start of range for cache files

REQUIRED ENVIRONMENT VARIABLES

FIBERY                Base path for all local storage managed by the app
FIBERY_DOMAIN         Which Fibery workspace domain to manage (or specify this with the `--workspace` option)
FIBERY_API_KEY        API key for your FIBERY_DOMAIN - get it from "Fibery Settings > API Keys"
8 Likes

This sounds great! I’m interested in beta testing :slight_smile:

1 Like

O wow that looks insane! Great idea. Scripting is not my cup of tea yet so can’t help you with testing. But really awesome that you’ve did this :smile:

1 Like

Being part of Fibery RnD team and one of main supporters of Automation area, want to share my impresssions.
Problem sounds very real to me. Especially for workspaces heavy on scripting. Even more useful for Creators, who manage several Fibery workspaces and need to maintain their setup.
Inside Fibery we don’t have current plans to improve here, so Matt’s solution should be very helpful.

I personally don’t have active Fibery setup to maintain :upside_down_face: , but will play with a tool with pleasure :+1: .

3 Likes

Hopefully this undocumented API (it is used by the UI) can become documented some day :grin:

Hey Matt, I would love to give it a go! I’m not super experienced with Javascript generally but I have taken a pretty deep dive into automations and have a couple of DBs with 20+ automations with script elements.

1 Like

Great initiative, Matt! Does this have potential to turn into a shared online scripts library? I’m not using local data on any device.

1 Like

Matt, you think the app could be able to create/update one script in multiple databases in one go? That would solve the existing problems with many databases using the same automation scripts.

That’s an interesting idea, but it would be a lot more complex - not something I want to implement right now.

1 Like

Absolutely. The simple macro feature allows precisely this.

3 Likes

Amazing as always! I don’t know how I missed this. I’m very interested in testing this. I use scripts quite a bit and have a few which are just variations that would definitely benefit from the “include” capability.

1 Like

Hey @Matt_Blais, would love to test this out as I’m drowning in rules!

1 Like