appsmithorg / appsmith

Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
https://www.appsmith.com
Apache License 2.0
34.68k stars 3.75k forks source link

[Feature]: Integration with nocodb #16877

Open ofsantana opened 2 years ago

ofsantana commented 2 years ago

Is there an existing issue for this?

Summary

Hello, can you guys add integration with nocodb (https://www.nocodb.com/) It will be a great combination for frontend and backend open source Nocode-Lowcode apps!

Why should this be worked on?

I think it will make an excellent combo to have a complete frontend and backend solution completely opensource and Nocode/Lowcode. Thanks

Nikhil-Nandagopal commented 2 years ago

@ofsantana thanks for the feature request! It might take us a while to get to this integration but we'll track it closely

ofsantana commented 2 years ago

Thank you guys for accepting this suggestion. I have several apps, with Front-end on Appsmith and Backend on NocoDB, using API REST, of course, so if you need any test at any moment, I'll be happy to help.

woodmin commented 4 months ago

+1 for NocoDB. We use NocoDB, n8n, and Appsmith. Native integration would really help.

LucBerge commented 3 weeks ago

+1

The NocoDB community is desperately looking for a dashboard tool in order to visualize data. If you implement it, the NocoDB community will rush to use appsmith.

nocodb/nocodb#9223

ofsantana commented 3 weeks ago

Let's see, right now, using the NocoDB API to make charts from the data is completely possible, using Appsmith as the tool for it. It will require a little bit of coding if you want a more complex chart, but for basic bar, line, and even pie charts, it's you will need almost no code at all. I have several charts made on Appsmith where the source data is nocoDB.

LucBerge commented 3 weeks ago

@ofsantana I can succesfully connect to NocoDB using the API connector in AppSmith. The problem is that NocoDB has a pagination system to retrieve records that does not allow a user to get all the records, the maximum being 100. The only way to get all the records is to have a proper connector.


Edit : There is a pagination feature but it seams to work with Tables only. In my case I need to sum 4000 records with 100 records / page and display it in a text box. How can I do it ?

I need {{MyQuery.data.list}} to return all the 4000 records.


Edit2: JsObject are what I need with the ability to call a query from JS. Hopefully, I am a developer, but non-devs won't be able to do it...

NocoDB_makeQuery:

export default {
    async makeQuery(query) {
        let records = [];

        let offset = 0;
        let isLastPage = false;

        while(!isLastPage) {
            const response = await query.run({offset});
            records = records.concat(response.list);
            isLastPage = response.pageInfo.isLastPage;
            offset = offset + response.list.length;
        }
        return records;
    }
}

NocoDB_all (fetchData is run on load)

export default {
    transactions: [],

    fetchData: async() => {
        this.transactions = await NocoDB_makeQuery.makeQuery(NocoDb_Transactions)
    }
}