# Can we add our own private nodes in addition to the search section provided by node-red in the pallet loading section?

**URL:** <https://discourse.nodered.org/t/can-we-add-our-own-private-nodes-in-addition-to-the-search-section-provided-by-node-red-in-the-pallet-loading-section/53156>\
**Category:** Developing Nodes\
**Tags:** security\
**Created:** [3 November 2021 07:25 UTC](https://discourse.nodered.org/t/can-we-add-our-own-private-nodes-in-addition-to-the-search-section-provided-by-node-red-in-the-pallet-loading-section/53156 "2021-11-03T07:25:10Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![sercancetin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sercancetin/32/50083_2.png) [@sercancetin](https://discourse.nodered.org/u/sercancetin)\
**Post date:** [3 November 2021 07:25 UTC](https://discourse.nodered.org/t/can-we-add-our-own-private-nodes-in-addition-to-the-search-section-provided-by-node-red-in-the-pallet-loading-section/53156/1 "2021-11-03T07:25:10Z")

</div>

Hello to everyone,  
I just wanted to ask if it could be. Can we add our own private nodes in addition to the search section provided by node-red in the pallet loading section? Not everyone should see the nodes here, only company employees should see them. Or do you have a better idea that you know of?

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [3 November 2021 07:39 UTC](https://discourse.nodered.org/t/can-we-add-our-own-private-nodes-in-addition-to-the-search-section-provided-by-node-red-in-the-pallet-loading-section/53156/2 "2021-11-03T07:39:18Z")

</div>

Yes. You can host your own catalogue of private nodes. Here is one approach [GitHub - hardillb/node-red-private-catalogue-builder: node-red-private-catalogue-builder](https://github.com/hardillb/node-red-private-catalogue-builder). Also see this thread [Creation of Catalog](https://discourse.nodered.org/t/creation-of-catalog/9722)

---

<div class="post-metadata">

**Author:** ![sercancetin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sercancetin/32/50083_2.png) [@sercancetin](https://discourse.nodered.org/u/sercancetin)\
**Post date:** [3 November 2021 07:51 UTC](https://discourse.nodered.org/t/can-we-add-our-own-private-nodes-in-addition-to-the-search-section-provided-by-node-red-in-the-pallet-loading-section/53156/3 "2021-11-03T07:51:57Z")

</div>

thank you for your attention Mr. Dceejay.

---

<div class="post-metadata">

**Author:** ![shrickus](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/shrickus/32/517_2.png) [@shrickus](https://discourse.nodered.org/u/shrickus)\
**Post date:** [3 November 2021 15:10 UTC](https://discourse.nodered.org/t/can-we-add-our-own-private-nodes-in-addition-to-the-search-section-provided-by-node-red-in-the-pallet-loading-section/53156/4 "2021-11-03T15:10:37Z")

</div>

Setting up a stand-alone catalog service is one way to go -- or you _could_ just create a flow in node-red!

Here is one that I used to just filter out the nodes I wanted users to install from the original catalog list:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/3/c3b2715b83af429db83d7e47afb57fa6b76cb3e1.png)

> **Sample Flow**
>
> ```auto
> [
> {
> "id": "829c111f.31f9c",
> "type": "http in",
> "z": "636b4cd7.6c8974",
> "name": "",
> "url": "/catalog.json",
> "method": "get",
> "upload": false,
> "swaggerDoc": "",
> "x": 180,
> "y": 500,
> "wires": [
> [
> "84e9294b.c06cd8"
> ]
> ]
> },
> {
> "id": "84e9294b.c06cd8",
> "type": "http request",
> "z": "636b4cd7.6c8974",
> "name": "https://catalogue.nodered.org/catalogue.json",
> "method": "GET",
> "ret": "obj",
> "url": "https://catalogue.nodered.org/catalogue.json",
> "tls": "",
> "x": 510,
> "y": 480,
> "wires": [
> [
> "69bb335a.fdd94c"
> ]
> ]
> },
> {
> "id": "69bb335a.fdd94c",
> "type": "change",
> "z": "636b4cd7.6c8974",
> "name": "curated node filter",
> "rules": [
> {
> "t": "set",
> "p": "payload.name",
> "pt": "msg",
> "to": "zPaper Nodes Catalog",
> "tot": "str"
> },
> {
> "t": "set",
> "p": "payload.modules",
> "pt": "msg",
> "to": "(\t $contribs := [\t \"node-red-contrib-aftership\",\t \"node-red-contrib-aws\",\t \"node-red-contrib-github\",\t \"node-red-contrib-google\",\t \"node-red-contrib-jira\",\t \"node-red-contrib-moment\",\t \"node-red-contrib-npm\",\t \"node-red-contrib-pdf\",\t \"node-red-contrib-redis-ssl-support\",\t \"node-red-contrib-salesforce\",\t \"node-red-contrib-salesforce-connection-emitter\",\t \"node-red-contrib-salesforce-platform-event\",\t \"node-red-contrib-slack\",\t \"node-red-contrib-xsltransform\",\t \"node-red-contrib-zip\",\t \"node-red-contrib-uibuilder\",\t \"node-red-dashboard\"\t];\t payload.modules[id.$match(/^node-red-node-/) or id in $contribs]\t)",
> "tot": "jsonata"
> }
> ],
> "action": "",
> "property": "",
> "from": "",
> "to": "",
> "reg": false,
> "x": 830,
> "y": 480,
> "wires": [
> [
> "e0bfde23.781e7"
> ]
> ]
> },
> {
> "id": "bd1a45f8.074d88",
> "type": "http response",
> "z": "636b4cd7.6c8974",
> "name": "",
> "statusCode": "",
> "headers": {},
> "x": 1170,
> "y": 500,
> "wires": []
> },
> {
> "id": "e0bfde23.781e7",
> "type": "switch",
> "z": "636b4cd7.6c8974",
> "name": "req?",
> "property": "req",
> "propertyType": "msg",
> "rules": [
> {
> "t": "null"
> },
> {
> "t": "nnull"
> }
> ],
> "checkall": "true",
> "repair": false,
> "outputs": 2,
> "x": 1030,
> "y": 480,
> "wires": [
> [
> "c5fce441.cc9598"
> ],
> [
> "bd1a45f8.074d88"
> ]
> ]
> },
> {
> "id": "c5fce441.cc9598",
> "type": "debug",
> "z": "636b4cd7.6c8974",
> "name": "catalog.json",
> "active": true,
> "tosidebar": true,
> "console": false,
> "tostatus": false,
> "complete": "payload",
> "x": 1190,
> "y": 460,
> "wires": []
> },
> {
> "id": "d508b24d.b2dff",
> "type": "inject",
> "z": "636b4cd7.6c8974",
> "name": "invoke the endpoint",
> "topic": "",
> "payload": "true",
> "payloadType": "bool",
> "repeat": "",
> "crontab": "",
> "once": false,
> "onceDelay": 0.1,
> "x": 190,
> "y": 460,
> "wires": [
> [
> "84e9294b.c06cd8"
> ]
> ]
> },
> {
> "id": "d83abe6.a20f84",
> "type": "comment",
> "z": "636b4cd7.6c8974",
> "name": "Generate a curated list of nodes for Palette Manager",
> "info": "",
> "x": 230,
> "y": 400,
> "wires": []
> },
> {
> "id": "379ea62b.75d2fa",
> "type": "comment",
> "z": "636b4cd7.6c8974",
> "name": "Modify this list as necessary",
> "info": "",
> "x": 840,
> "y": 440,
> "wires": []
> },
> {
> "id": "1e4c116b.28152f",
> "type": "comment",
> "z": "636b4cd7.6c8974",
> "name": "Retrieve the full list of nodes from the flows library",
> "info": "",
> "x": 520,
> "y": 440,
> "wires": []
> }
> ]
> 
> ```

---

<div class="post-metadata">

**Author:** ![sercancetin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sercancetin/32/50083_2.png) [@sercancetin](https://discourse.nodered.org/u/sercancetin)\
**Post date:** [3 November 2021 15:28 UTC](https://discourse.nodered.org/t/can-we-add-our-own-private-nodes-in-addition-to-the-search-section-provided-by-node-red-in-the-pallet-loading-section/53156/5 "2021-11-03T15:28:13Z")

</div>

i will review. thank you.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [2 January 2022 15:28 UTC](https://discourse.nodered.org/t/can-we-add-our-own-private-nodes-in-addition-to-the-search-section-provided-by-node-red-in-the-pallet-loading-section/53156/6 "2022-01-02T15:28:34Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
