# Contribute

{% hint style="success" %}
This is the official documentation of the `@forestadmin/agent` Node.js agent.
{% endhint %}

{% hint style="info" %}
We are well aware that Forest Admin is a commercial project, and asking for open-source contributions may seem off-limits to some.

However, if you have written a data source, open-sourcing it on our repository also has advantages for you.
{% endhint %}

Did you write a reusable data source for a SaaS, or to a database vendor that we don't support?

At Forest Admin, we would love to see it!

## How to suggest a new data source

Would you consider making a [Pull Request](https://github.com/ForestAdmin/agent-nodejs/pulls)?

### Conditions

When suggesting a new data source, reach out to us and we'll work together to bring your data source to the standards that we follow.

However note that:

* We'll merge only data sources to SaaS which have enough traction (so that it is likely that other customers than you will use them)
* You must use TypeScript
* Translating data sources are preferred (when implementing one is possible, depending on the target API)

### Once merged

Once data sources are merged into the agent repository, we try very hard to:

* Maintain them up-to-date on each new release of Forest Admin
* Maintain high to very-high test coverage
* Maintain public and up-to-date documentation


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.forestadmin.com/developer-guide-agents-nodejs/data-sources/custom/contribute.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
