appsmithorg / appsmithorg/appsmith

[Feature] DB Plugin Contributor Experience

Open
#6,485 0 comments 0 reactions 0 assignees View on GitHub
Enhancement Integrations Product New Datasource Query & JS Pod Query Widgets & IDE Pod
Dominant language
TypeScript
Stars
40.9k
Forks
4.8k
Avg merge
1d 22h
Merged PRs (30d)
45

Description

## Description
DB Plugin Contributors need a better experience to add new plugins. They need
- Clear Requirements
- Better Coding Experience

## User Story
A user browsing appsmith notices that their DB is not available on the product. They go ahead and see a CTA to Request a new Plugin. They fill out a form that sends an Email to us and prompts them to consider contributing to the platform. They Opt to contribute and are taken to our Plugin Contribution Document.

The Plugin Contribution Document outlines the contribution process and contains instructions to
- Install the appsmith CLI
- Run the command to setup appsmith locally
- Run the command to generate a plugin template

The generate template command asks the user
- Enter the type of plugin you wish to contribute
- SQL / NoSQL / File Storage / SAAS
- Enter the name of the plugin you wish to generate
- Enter the name of the entity in the plugin, you want to query (Table / Row / Bucket / File / Collection)

The command generates a set of files at the location of the appsmith repo. The Files generated are
- Plugin Authentication UI File
- Plugin Authentication File
- Plugin Entity CRUD File
- Plugin Entity UI File
- Plugin Entity Test File

The user goes through the Plugin Authentication file and implements the methods to
- Authenticate the plugin
- Test the Authentication
- Fetch the structure
The user also configures the authentication UI by editing the JSON

The user goes through the Entity CRUD File and implements the unified methods mentioned in
https://www.notion.so/appsmith/Unified-Query-Interface-For-DB-Plugins-cca4b0c8669949568a00f1e516b62fa8
The user opens the Entity UI File and sees the default template names specified for each of the methods. She runs the plugin locally and the default test cases of the entity type are run against the plugin letting the user know if their plugin works and if all the cases are implemented. The user can add additional test cases if needed but the platform already has the mandatory test cases for the CRUD methods out of the box.

The user now pushes their code and raises a pull request tagging the issue # of the plugin. The user also submits a video documenting how the plugin works. The documentation for the CRUD Methods is auto-generated. A server-side deploy preview is generated for the plugin.
Appsmith team verifies the plugin against some test credentials and approves / requests for changes. The plugin is merged and new users can install the plugin on the fly

The user now wants to add a custom method that does not fall into the auto-generated requirements of the plugin. The user runs the template generation command to add a custom plugin method.
The command asks the user
- Enter the name of the plugin

The command generates
- Plugin CustomMethod File
- Plugin Custom UI File
- Plugin Custom Doc File
The user implements the Custom Method and the Custom UI File. The user writes the documentation for the custom method as well.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.