Is there a second video address for the development and deployment of OpenFlow and NodeRedAgent
what was the first video, you are referring too ?
A popular video about how to deploy and get started with the platform is here
Thank you,OpenFlow和NodeRedAgent,I want a video of secondary code development
OpenFlow and NodeRedAgent,I want a video of secondary code development
Used for local operation and development
2
Error: connect ECONNREFUSED ::1:5672
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16)
at TCPConnectWrap.callbackTrampoline (node:internal/async_hooks:130:17) {
errno: -4078,
code: ‘ECONNREFUSED’,
syscall: ‘connect’,
address: ‘::1’,
port: 5672
}
18:20:42.600 [task_queues ][processTicksAndRejections] VERSION: 1.5.8.18
2
MongoServerError: The $changeStream stage is only supported on replica sets
at Connection.onMessage (D:\1225\nodered\openflow\node_modules\mongodb\lib\cmap\connection.js:231:30)
at MessageStream. (D:\1225\nodered\openflow\node_modules\mongodb\lib\cmap\connection.js:61:60)
at MessageStream.emit (node:events:514:28)
at processIncomingData (D:\1225\nodered\openflow\node_modules\mongodb\lib\cmap\message_stream.js:125:16)
at MessageStream._write (D:\1225\nodered\openflow\node_modules\mongodb\lib\cmap\message_stream.js:33:9)
at writeOrBuffer (node:internal/streams/writable:392:12)
at _write (node:internal/streams/writable:333:10)
at Writable.write (node:internal/streams/writable:337:10)
at Socket.ondata (node:internal/streams/readable:766:22)
at Socket.emit (node:events:514:28) {
ok: 0,
code: 40573,
codeName: ‘Location40573’,
[Symbol(errorLabels)]: Set(0) {}
}
18:20:42.618 [SamlProvider ][configure] SAML signing certificate is not configured, saml not possible
18:20:42.675 [index ][initDatabase] Begin validating builtin roles
18:20:42.683 [Config ][cleanAndApply] Loaded config version 1
18:20:42.684 [dockerdriver ][detect] Docker not detected: connect ENOENT //./pipe/docker_engine
18:20:42.685 [dockerdriver ][detect] Docker not detected: connect ENOENT //./pipe/docker_engine
18:20:42.846 [index ][initDatabase] Trigger first Housekeeping in 3 seconds
Error: Cannot Add new Queue Consumer, not connected to rabbitmq
at amqpwrapper.AddQueueConsumer (D:\1225\nodered\openflow\dist\amqpwrapper.js:303:23)
at QueueClient.RegisterMyQueue (D:\1225\nodered\openflow\dist\QueueClient.js:69:65)
at QueueClient.connect (D:\1225\nodered\openflow\dist\QueueClient.js:25:20)
at QueueClient.configure (D:\1225\nodered\openflow\dist\QueueClient.js:14:31)
at D:\1225\nodered\openflow\dist\index.js:486:41
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
18:20:42.849 [index ][anonymous] 404
Waiting for the debugger to disconnect…
If you want to run it locally, you need to run it in docker …
there is a guide for that here
if you want to build you own image from source, there is a guide here.
NodeRedAgent cannot run locally. What should I do? The startup configuration is as follows
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Run main",
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"runtimeArgs": [
"--loader",
"ts-node/esm"
],
"program": "src/main.ts",
"env": {
"log_with_colors": "true",
// "apiurl": "grpc://grpc.demo.openiap.io:443",
"apiurl": "grpc://localhost.openiap.io:50051",
"domain": "localhost.openiap.io",
"oidc_config": "https://app.openiap.io/oidc/.well-known/openid-configuration",
// "port": "1880",
"port": "1880",
"protocol":"http",
"externalport": "1880",
"nodered_id": "silent-fire-8f37",
"jwt": "",
},
"resolveSourceMapLocations": [
"${workspaceFolder}/**",
"!**/node_modules/**",
"**/node_modules/@openiap/**",
]
}
]
}
what is the error ?
hard to help without knowing what the issue is
noderedagent F5 running,http://localhost.openiap.io:1880/;Access error
Host header is specified and is not an IP address or localhost.
D:; cd 'D:\1225\nodered\noderedagent'; ${env:log_with_colors}='true'; ${env:domain}='localhost.openiap.io'; ${env:oidc_config}='https://app.openiap.io/oidc/.well-known/openid-configuration'; ${env:port}='1880'; ${env:externalport}='1880'; ${env:nodered_id}='silent-fire-8f37'; ${env:jwt}='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InJvbGVzIjpbeyJuYW1lIjoiYWRtaW5zIiwiX2lkIjoiNWExNzAyZmEyNDVkOTAxMzY5NzY1NmZiIn0seyJuYW1lIjoiZmlsZXN0b3JlIGFkbWlucyIsIl9pZCI6IjViNmFiNjNjOGQ0YTY0YjdjNDdmNGE4ZSJ9LHsibmFtZSI6ImZpbGVzdG9yZSB1c2VycyIsIl9pZCI6IjViNmFiNjNjOGQ0YTY0YjdjNDdmNGE4ZiJ9LHsibmFtZSI6Im5vZGVyZWQgYWRtaW5zIiwiX2lkIjoiNWExN2YxNTdjNDgxNTMxOGM4NTM2YzIwIn0seyJuYW1lIjoibm9kZXJlZCBhcGkgdXNlcnMiLCJfaWQiOiI1YTE3ZjE1N2M0ODE1MzE4Yzg1MzZjMjIifSx7Im5hbWUiOiJub2RlcmVkIHVzZXJzIiwiX2lkIjoiNWEyM2YxOGEyZTg5ODcyOTJkZGJlMDYxIn0seyJuYW1lIjoicGVyc29uYWwgbm9kZXJlZCB1c2VycyIsIl9pZCI6IjVhMjNmMThhMmU4OTg3MjkyZGRiZTA2MiJ9LHsibmFtZSI6InJvYm90IGFkbWlucyIsIl9pZCI6IjVhZWYwMTQyZjM2ODM5NzdiMGFhM2RkMiJ9LHsibmFtZSI6InJvYm90IHVzZXJzIiwiX2lkIjoiNWFlZjAxNDJmMzY4Mzk3N2IwYWEzZGQzIn0seyJuYW1lIjoidXNlcnMiLCJfaWQiOiI1YTE3ZjE1N2M0ODE1MzE4Yzg1MzZjMjEifSx7Im5hbWUiOiJ3b3JraXRlbSBxdWV1ZSBhZG1pbnMiLCJfaWQiOiI2MjU0NDBjNDIzMTMwOWFmNWYyMDUyY2QifV0sImRibG9ja2VkIjpmYWxzZSwiX3R5cGUiOiJ1c2VyIiwiX2lkIjoiNjc3N2E1OTM4MDNkMDIzOTgwZmNmNDMxIiwibmFtZSI6IjE4ODExNzQwODg5QDE2My5jb20iLCJ1c2VybmFtZSI6IjE4ODExNzQwODg5QDE2My5jb20ifSwiaWF0IjoxNzM2MTYwNTI1LCJleHAiOjE3MzYxNjA4MjV9.EgFa6ihIR_8Oebvrt-MVL76rrUwoA9K7xGrHJ8FXg4A'; ${env:NODE_OPTIONS}=' --require "d:/gongju/Microsoft VS Code/resources/app/extensions/ms-vscode.js-debug/src/bootloader.js" --inspect-publish-uid=http'; ${env:VSCODE_INSPECTOR_OPTIONS}=':::{"inspectorIpc":"\\\\.\\pipe\\node-cdp.22664-1e04694d-97.sock","deferredMode":false,"waitForDebugger":"","execPath":"C:\\Program Files\\nodejs\\node.exe","onlyEntrypoint":false,"autoAttachMode":"always","fileCallback":"C:\\Users\\18811\\AppData\\Local\\Temp\\node-debug-callback-bc9e5ec8e851d257"}'; & 'C:\Program Files\nodejs\node.exe' '--loader' 'ts-node/esm' 'src/main.ts'
Debugger attached.
(node:37012) ExperimentalWarning: Custom ESM Loaders is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
[client][INF] Connected to server localhost.openiap.io:50051
[client][INF] Signed in as 18811740889@163.com
Signed in as: 18811740889@163.com
express-session deprecated undefined resave option; provide resave option src\main.ts:163:29
express-session deprecated undefined saveUninitialized option; provide saveUninitialized option src\main.ts:163:29
*********************************
port: 1880 externalport: 1880
*********************************
[client][INF] Register watch with id z04do4xpj
[client][INF] D:\1225\nodered\noderedagent\data\package.json exists.
Debugger attached.
Waiting for the debugger to disconnect...
[client][INF] Installing
Debugger attached.
up to date, audited 1 package in 827ms
found 0 vulnerabilities
Waiting for the debugger to disconnect...
[client][INF] 18:49:29
6 Jan 18:49:29 - [warn] Using unencrypted credentials
I don’t see any errors in the output ?
visit http://localhost.openiap.io:1880/ The Host header error is specific and not an IP address or local host. Is it a configuration issue or something else? I have no idea…This is not done through execution, it is run through local source code
make sure your browser is not using a proxy server
and make sure nothing else is using port 1880
How to package and deploy OpenFlow and NodeRedAgent to the server? Through mirroring?
I already told you that, using docker
Can Node-RED Agent use a name or any other method more effectively instead of JWT in production?
How do OpenFlow and Node-Red Agent establish connections in production environments, whether through JWT authentication or user information? Are there specific videos that explain the production and development processes in detail?
https://docs.openapi.io/docs/flow/Architecture.html
https://docs.openapi.io/docs/flow/ProtocolDetails.html
No, our code for Node-RED only supports JWT, but you are free to create a pull request to add support for OAuth/SAML or basic authentication if you feel that is needed.
Are NodeAgent and NodeRedAgent the same? What are they individually, and is there any relationship between them?
Agent is a common term for a service that can orchestrate packages (install package dependencies, recycle doing updates, monitor health, collect logs, etc.)
Currently, we have 3 types of agents:
- Cloud agents: A docker image with the agent that is started inside Docker or Kubernetes.
- Nodeagent: A service you install on Windows, Linux, or macOS that runs in the background.
- Assistant: An Electron app that you can run on Windows, Linux, or macOS.
When an agent starts, it registers itself in OpenFlow and then receives information about what packages to run. Agents can also run packages themselves (like with the Node-RED image that automatically runs a package with Node-RED or the Assistant where the user is presented with a list of packages they have access to and can click on one to run it).
NodeAgent is the agent code you can install locally.
NodeRED Agent is a package you can run on the agent.
Since not everyone will know how to publish a package, we have created a Docker image that comes pre-bundled with NodeAgent and NodeRED Agent. If you want to run NodeRED Agent locally, you need to “publish” it to your OpenFlow instance first as explained here.