I am Christoph from SeaTable. I am responsible for the SeaTable Community Node (https://www.npmjs.com/package/n8n-nodes-seatable). Some months ago, this community node was merged into core and my action Make an API Callwas removed.
My understanding is, that n8n does not want that every node includes an Make an API Callbut instead the users should use the HTTP Request Node. Is this correct?
If so, here is my question/problem.
Describe the problem/error/question
As you can see, there is no possibility to select SeaTable API as **Predefined Credential Type**.
I am the developer of the SeaTable Node. In my community node, there was an ActionMake API Request, but this action was removed as the code was merged into the n8n core.
The reason for that was: Make API Request in the SeaTable Node is not necessary. The HTTP-Node should be used instead.
Now my question is: why is SeaTable not available as option in the list of available authentication methods of the HTTP-Node?
The question is not about SeaTable, it is about how this list of authentication options is populated.
Aaa i get it now, thanks for clarifying. This may be the result of my opinion and research.
About how the HTTP Request “Credential Type“ list is populated, that dropdown is not auto-generated from every credential in n8n. It only shows credential types that are explicitly flagged as httpRequestAuth compatible in their credential class.
In other words, a credential has to implement the right interface so n8n knows how to inject it into HTTP headers/query params or auth flows.
So.. even though the SeaTable credential exists (for the SeaTable node), if it doesnt export itself as httpRequestAuth, the HTTP Request node wont list it.
Okay now, what this means for SeaTable. The original Make API Request action in your community node worked because you hard-coded how to apply SeaTable credentials. After merging to core, the philosophy is: use HTTP Request node instead of duplicating “make request“ actions in every node. But to make this smooth, your SeaTable credential definition must implement to standard httpRequestAuth extension. That way it will appear in the list, and users can reuse it directly.
And maybe i have a suggest if you want SeaTable to show up in HTTP Request. You can add the httpRequestAuth property in the SeaTable credential class. Define how to map credential fields (apiToken, baseUrl, etc.) into the request (headers, params). Once it done, rebuild, and SeaTable will appear as an option under Credential Type.
Thats all i think the information i can provide you with. I hope it answer your question.
thanks for your answer. In the meantime, I learned, that it would be sufficient to add this code to my SeaTableApi.credentials.ts. Probably this helps other node developers.
Unfortunately, this does not work for SeaTable because this $credentials.token is not the final token. SeaTable has a logic that from this token (which is persistent) another token (with an expiration date) is calculated and then used for all API calls. For everybody who is interested, this is documented here in more detail: Authentication
That means, even if SeaTable appears in the HTTP-Request node, it will not work, because the code from the SeaTable Node is missing to get this other token.
Thanks for your help. Currently it is fine how it is.