This is the backend server for RudderStack assignment.
This app is a simple nodejs server with experss and SQLite database using sequilize as ORM layer. Users can create new Templates with different Fields and create Data Sources with a specific Template
To create a Source via UI, follow this link
Prerequisites: Install nodejs. You can follow the offical guide or use nvm
Clone the repository locally. To install dependencies, run
npm installTo start local server, run
npm run devThis will start a local server at http://localhost:3001
Couple of important APIs are listed here. You can check index.ts for all the APIs
- POST
/fieldsCreate a new data field to be associated wiith a template Request Body
{
"name": "apiKey",
"input_type": "text",
"label": "API key",
"regexErrorMessage": "Invalid api key",
"placeholder": "e.g: 1234asdf",
"regex": "[a-z0-9]",
"required": true
}- POST
/templatesCreate a new template, templates are logical grouping of different fields Request Body:
{
"name": "Template 1",
"fields": [1,2,3]
}- POST
/sourcesCreate a data source config with a given template Request Body:
{
"name": "Source 1",
"templateId": 1,
"fields": [{
"id": 1,
"value": "APK_Key"
}, {
"id": 2,
"value": true
}, {
"id": 3,
"value": "android"
}]
}- PUT
/sourcesUpdate existing source Request Body:
{
"id": 1,
"name": "Source 1",
"templateId": 1,
"fields": [{
"id": 1,
"value": "APK_Key"
}, {
"id": 2,
"value": true
}, {
"id": 3,
"value": "android"
}]
}- DELETE
/source/:sourceIdDelete source