AppBlade services power the integration and plugin aspects of the AppBlade platform. These integration points are open source and under the MIT LICENSE.
- A service hooks are triggered by a background process when certain triggers are hit on AppBlade
- If any service hooks are enabled on the project/account AppBlade will pass the request on the services process (this project)
- "Services" will process the request and it's JSON payload
The service schema is broadcasted via JSON on a GET /
; AppBlade will consume this and display it in your project's settings.
See examples in the services directory to see how services are setup.
Schema type | Arguments | Description |
---|---|---|
string | *fields, options = {} | A string data type (max-length 999) |
password | *fields, options = {} | A string with a masked input field |
boolean | *fields, options = {} | A string with a value of 1 or 0, true/false, will be presented as a checkbox in AppBlade |
oauth | service_identifier | An OAuth token for a given service (sensitive by default) |
Key | Value | Description |
---|---|---|
required | Boolean | Fails validation if empty |
sensitive | Boolean | Sensitive fields will only show their contents to the user that editted the integration last on AppBlade |
default | String | AppBlade will show a default value |
collection | [Strings] | AppBlade will show a combination box with the array values passed |
-
Fork this project
-
Start the services project by running either
bundle exec services.rb
orbundle exec ruby services.rb
-
Create a new ruby file or modify one in /services with the following format:
class Service::ServiceName < Service Title = 'Service Name' Description = 'One line description' string :foo, :required => true string :something, :something_else, :default => 'a' boolean :do_something oauth :named_service # Put your validations here (string only ATM) def settings_test return 'Success.' end # Do something when a unique crash report comes through def receive_crash_report end # Do something when feedback is recieved def recieve_feedback end end
-
Add any any needed tests in /tests
-
Add documentation in /docs
-
Add any dependencies to the Gemfile
-
Send a pull request to AppBlade Services