- Add experimental support for Opal
- Add new project configuration keys:
opal_dirandopal_js_destination - Add helper method
render_templateto the Ruby runtime.
- Move regions configuration to a separate file, so it can be shared among different components of the gem
- Replace hardcoded URLs by the correct variables
- Fix messy env vars
- Ensure logout happens even if connection to the API fails
- Bump faastruby-rpc to 0.2.7
- Detect Crystal functions that have
handler.crinsidesrcdirectory - Exclude Crystal function handler binaries when generating a deployment package
- Move Crystal Runtime Macro to the top of the file, outside the FaaStRuby module
- Fix bug preventing
--syncfrom working with any other environment.
- Require supported_runtimes on every command run.
- Improved email regex.
- Display the correct error message when confirmation token is invalid
- Add option
--skip-dependenciesto the commandsdeploy-toanddeployto allow skipping ofbundle installandshards install. - Change Ruby runtimes to
2.5and2.6and use the pessimistic version operator to compare Ruby versions and maintain backwards compatibility. - Fix error message on
deploy-towhen workspace credentials are missing
- Fix bug preventing
faastruby deployfrom working when secrets are nil
- Reverted changes from 0.5.17
- Refactored headers parsing
- Bump
faastruby-rpcversion - Force RPC calls to use event.body instead of extra arguments
- Added
favicon.icoto the public template to stop annoying catch-all invocations on log - Match platform behaviour when render text is used on an object
- Refactored headers parsing
- Change Oj load behaviour to use hash with symbol keys when loading rpc_args
- Bump
faastruby-rpcversion - Added
favicon.icoto the public template to stop annoying catch-all invocations on log
- Remove unused arguments from update workspace
runmethod. - Update Help
- Change the argument that measures the execution time on
runto--measure - Add argument to read context from STDIN when running
deploy-to - Switch default config files method from array to multiline string
- Allow passwords with up to 50 characters.
- Fix bug preventing
faastruby deployto deploy the secrets.
- Remove
nilentries from error array before trying to print error messages
- Fix bug when trying to detect Gemfile.lock
- Add helper method to debug listener event
- Local will give the cloud Workspace URL after booting when sync is enabled
faastruby deploywill print the workspace URL when it succeeds.
- Update help with new spelling
- Better handle of deploys when sync is enabled
- Fix broken output spinners
- Improved console messages
- Disable initial compile of crystal functions when starting Local
- Fixed output bug when deploying from Local
- Clearer message output for the command
confirm-account - Ignore when Gemfile.lock is added
- Don't trigger a deploy when Gemfile is added
- Ignore Gemfile changes while initializing it
- Add new branding to Local web templates.
- Fix secrets.yml example in comments.
- Cleanup logger module.
- Local generated deploy-to command was not escaping JSON before bassing to
--context. - Bump faastruby-rpc to 0.2.5
- Bump faastruby-rpc to 0.2.4
- Fix Watchdog message when a function is removed from the project.
- Add method render_nothing to ruby and crystal functions, to make it clear how to send an empty response body
- Empty functions will render an empty body
- Ensure Watchdog listeners stop when exiting
- Fix bug preventing
--create-local-dirfrom creating a folder whencreate-workspaceis used - Change message confirmation when destroying a workspace
- Update YAML template comments with mention to
test_command - FaaStRuby Local won't start unless it can find
project.ymlin current directory. - Fix command
faastruby deploy - Fix bug when response headers are empty
- Add Gemfile support to Watchdog. When a
Gemfileis added to a function, Watchdog will initialize it if the file is empty and runbundle installevery time you modify it. - Watchdog will stream the output of commands instead of printing everything once it's done.
- Disable caching for static files on Local
- Bump dependency faastruby-rpc to v0.2.3
- Use CSS gradient instead of background picture on Local Web template
- Match response headers with cloud platform
- Refactor API class
- Bump faastruby-rpc dependency to 0.2.2
- Better API error handling
- Display alert when new gem version is available
- Add command
faastruby update - Quit server when FaaStRuby Local fails to start
- Fix bug preventing require libraries. Thanks to @jbonney for spotting that one!
- Support for static files with space in their names
- Cleanup comments code
- Limit the size of static files to 5MB
- Check if the number of runners is an integer
- Use a class method inside FaaStRuby::Response to handle invalid response messages.
- Fix invalid response error when functions return invalid responses
- Fix logout problem
- Fix help to display the correct
new-projectcommand
- Fix bug with migrating accounts
- Enforce one special character on account passwords.
- Introduces FaaStRuby Local
- Introduce user accounts and a migration tool to move the legacy workspace credentials into your account.
- New key on faastruby.yml -
before_buildallows you to specify commands to run locally before building and uploading the function package. - New command:
update-workspace WORKSPACE_NAME --runners INT- set the number of runners for a workspace.
- Bumps runtime crystal:0.27.1 to crystal:0.27.2
- Fix bug when cloning git repos with --template git:...
- Add support for function templates
- Add cli_version to
faastruby.yml
- Add support for Crystal 0.27.1 and Ruby 2.6.1
- Ruby functions now use a spec helper from
faastrubygem. - Crystal functions now use the shard
faastruby-spec-helperto assist on tests. - Mock
publishmethod on tests. - Wrap functions in anonymous module to avoid concurrency problems.
- Read all STDIN when updating context with --stdin PR-5 | Thanks Justin!
shards installruns when building crystal function before deploy- Better message when updating the function context
- Fixed output when creating a function with
faastruby new
A new version of the platform API was released in tandem to address the issue that would erase contexts when a function is redeployed. Thanks Justin again for pointing that out.
Special thanks to Sean Earle for fixing those bugs!
- FaaStRuby Server: Respond with css content type PR-4
- Setup the server to respond to HEAD requests PR-3
- Fix wrong working directory when running functions locally with
faastruby server
- Fix command
faastruby server
- Changes in
faastruby server- Cleaned up code
- Logs are easier to read
- Function responses show up in the log
- Support for events with
publish
- Use the actual param rather than the Sinatra::Params object
create-workspacewill not create a folder on current dir, unless specified with--create-local-dir
- Default value when no runtime is provided to
new
- Change help terminal colors for better readability
- Add png, jpeg, css, svg, gif and icon mime-types to
render
- Update faastruby-rpc to 0.2.1
- Updated
faastruby-rpcdependency to 0.2.0. - Improved FaaStRuby Server.
- Simplified Crystal Hello World example.
- Updated ruby templates.
- Faster hello-world Ruby template.
- Ruby 2.6.0 and Crystal (beta) 0.27.0 released.
- Crystal template runs a lot faster.
- Error when unsupported runtimes are passed to
new
- Add support for different runtimes with
--runtimetonewcommand. Example:faastruby new hello-world --runtime ruby:2.6.0 - Add runtime
ruby:2.6.0 - Add runtime
crystal:0.27.0
- Clean up credentials file when listing or saving it to remove nulls.
- Raise error when trying to save null credentials to file.
- Ignore null entries from credentials hash.
- Use
JSON.pretty_generatewhen writing to credentials file, so it is more human readable. - Fix bug: when creating a workspace from
deploy-tocommand, if the workspace existed it would not error, but the deploy would fail and a null entry would go in the credentials file.
deploy-towill try to create the workspace if it doesn't exist.- Changed template to add a carriage return.
- Better output for tests
bundle check && bundle installruns before building a package to make sure Gemfile.lock is updated.- New command:
faastruby deploy. This command is meant to be run in a FaaStRuby Project folder, and will deploy all workspaces and their functions. - Updated spec templates with new helper that stubs calls to FaaStRuby server when using
faastruby-rpc. renderis now the preferred method to set the return value of functions.- Upgraded dependency
faastruby-rpcto version 0.1.3. - Removed region SFO2 (sorry, but the usage was minimal.)
- Add faastruby-rpc to Gemfile template and runtime dependencies
- Add spinner feedback when destroying workspace
- Better error handling when response is not JSON
- New command
faastruby serverwill start a development environment.
- Change Ruby minimum version to 2.5.0
- Disable timeout on HTTP requests.
- Handle CTRL+C interruptions gracefully
- Add
--regionto help
- Support for multiple regions with
faastruby --region [REGION] ...
- Added #status_code to Workspace class to hold the API response code after a request
- Added refresh_credentials endpoint
- Fix the request headers
- Fix bug with
faastruby help
- Functions can be scheduled via faastruby.yml
- Some API errors were not being properly displayed
- New command:
add-credentials- add credentials to a credentials file - New command:
list-credentials- list current credentials in a credentials file Runfaastruby helpfor usage details.
- Full rewrite of the gem. All command line parameters have changed. Please see the documentation.
- No more git repositories.
- Functions are packaged, deployed and managed individually.
- Functions have a YAML configuration file.
- Functions can have tests and they can be configured to run before each deploy, aborting if a failure happens.
- Added option to print or save the workspace credentials into a different file upon creation, instead of saving it to ~/.faastruby
- Read a different credentials file via FAASTRUBY_CREDENTIALS environment variable.
- Read credentials via environment variables: FAASTRUBY_API_KEY and FAASTRUBY_API_SECRET.