GithubHelp home page GithubHelp logo

openziti / ziti-sdk-nodejs Goto Github PK

View Code? Open in Web Editor NEW
66.0 6.0 3.0 555 KB

An SDK for embedding zero trust into Node.JS applications and web servers to improve security.

License: Apache License 2.0

Python 3.55% C 72.32% JavaScript 18.33% Shell 1.54% Batchfile 3.09% Handlebars 0.06% CMake 1.11%
javascript node nodejs zerotrust security sdk sdk-js appsec netsec ztna

ziti-sdk-nodejs's Introduction

Ziggy using the ziti-sdk-nodejs

OpenZiti is a free and open source project focused on bringing zero trust to any application.
The project provides all the pieces required to implement or integrate zero trust into your solutions.

Please star us.


@openziti/ziti-sdk-nodejs

This repo hosts the OpenZiti SDK for NodeJS, and is designed to help you deliver secure applications over a OpenZiti Network

Part of the OpenZiti ecosystem


Are you interested in knowing how to easily embed programmable, high performance, zero trust networking into your NodeJS app, on any internet connection, without VPNs?
Learn more about our OpenZiti project.


Build Status Issues npm version License LOC PRs Welcome Contributor Covenant


Associated Article(s)

For more context on this SDK, you may be interested in this article concerning how to secure NodeJS applications

Supported platforms

The @openziti/ziti-sdk-nodejs module works with the following Node.js versions:

  • v16.x
  • v18.x
  • v19.x
  • v20.x
  • v21.x

The @openziti/ziti-sdk-nodejs module works with the following architectures:

  • amd64
  • arm64

The @openziti/ziti-sdk-nodejs module works with the following Operating Systems:

  • macos
  • linux
  • windows

Installing

NPM

npm i @openziti/ziti-sdk-nodejs

or Yarn

yarn add @openziti/ziti-sdk-nodejs

Special note on previous package:

On June 7, 2020 @openziti/[email protected] was released. Older, unscoped versions that are not part of the @openziti org are deprecated and only @openziti/ziti-sdk-nodejs will see updates going forward. To upgrade to the new package do:

npm uninstall ziti-sdk-nodejs --save
npm install @openziti/ziti-sdk-nodejs --save

Usage

Note: the module must be installed before use.

ESM example (client-side)

import ziti from '@openziti/ziti-sdk-nodejs';

// Somehow provide path to identity file, e.g. via env var
const zitiIdentityFile  = process.env.ZITI_IDENTITY_FILE;
// Authenticate ourselves onto the Ziti network
await ziti.init( zitiIdentityFile ).catch(( err ) => { /* probably exit */ });

const on_resp_data = ( obj ) => {
    console.log(`response is: ${obj.body.toString('utf8')}`);
};

// Perform an HTTP GET request to a dark OpenZiti web service
ziti.httpRequest(
  'myDarkWebService',            // OpenZiti Service name or HTTP origin part of the URL
  undefined,                     // schemeHostPort parm is mutually-exclusive with serviceName parm
  'GET',
  '/',                           // path part of the URL including query params
  ['Accept: application/json' ], // headers
  undefined,                     // optional on_req cb 
  undefined,                     // optional on_req_data cb
  on_resp_data                   // optional on_resp_data cb
);

ESM example (server-side ExpressJS)

import ziti from '@openziti/ziti-sdk-nodejs';
import express from 'express';
let app = ziti.express( express, zitiServiceName );
app.listen(ignored, function() { ... }

/**

That's right.

With only a single-line code change (the ziti.express call), your web server is now capable
of being invisible to malicious attackers on the internet, and only accessible to your 
trusted remote users.

Nothing else in your existing ExpressJS web server code needs to change!

Existing routing, middleware, etc., all operates the same as it always did... 
but now you enjoy the comfort of knowing that if a connection comes in, it is from 
a trusted identity on the client side.

No malicious actors can see your dark web server, and thus, no malicious actors can attack it.

*/

CJS example (client-side)

var ziti = require('@openziti/ziti-sdk-nodejs');

const ziti_init = async (identity) => {
    return new Promise((resolve) => {
        ziti.ziti_init(identity, () => {
            resolve();
        });
    });
};

const ziti_service_available = (service) => {
    return new Promise((resolve) => {
        ziti.ziti_service_available(service, (status) => {
            resolve(status);
        });
    });
};

function ziti_dial(service) {
    return new Promise((resolve, reject) => {
        ziti.ziti_dial(
            service,
            (conn) => {
                resolve(conn);
            },
            (data) => {
                // Do something with data...
            },
        );
    });
}

const ziti_write = (conn, data) => {
    return new Promise((resolve) => {
        ziti.ziti_write(conn, data, () => {
            resolve();
        });
    });
};

(async () => {

    await ziti_init(LOCATION_OF_IDENTITY_FILE);

    let status = await ziti_service_available(YOUR_SERVICE_NAME);

    if (status === 0) {

        const conn = await ziti_dial(YOUR_SERVICE_NAME);

        let data = SOME_KIND_OF_DATA;

        let buffer = Buffer.from(data);

        await ziti_write(conn, buffer);

        ...etc
    }

})();

API Reference

For doc concerning API's contained in this SDK, you may be interested in this SDK API Reference

Getting Help

Please use these community resources for getting help. We use GitHub issues for tracking bugs and feature requests and have limited bandwidth to address them.

Building from source on MacOS

git clone https://github.com/microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=`pwd`/vcpkg
brew install cmake
brew install ninja
brew install pkg-config
git clone https://github.com/openziti/ziti-sdk-nodejs.git
cd ziti-sdk-nodejs
npm run build

Copyright© NetFoundry, Inc.

ziti-sdk-nodejs's People

Contributors

dependabot[bot] avatar dovholuknf avatar ekoby avatar qrkourier avatar rentallect avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ziti-sdk-nodejs's Issues

Checking whether the current connection is active

The serviceAvailable API checks whether a serviceName is active by returning an object that reveals the availability and status of the service.

Similarly, we need an API to check whether the connection is active/live or inactive/dead.

npm i ziti-sdk-nodejs

I am trying to install the node sdk. The goal of this project is to create a secure connection to a nodejs application. My repository for the sample application is located here.

Problem:
The issue that I am currently facing is installing the sdk. When I run the command npm i ziti-sdk-nodejs. I get the following error:

npm ERR! node-pre-gyp info it worked if it ends with ok
npm ERR! node-pre-gyp info using [email protected]
npm ERR! node-pre-gyp info using [email protected] | darwin | x64
npm ERR! node-pre-gyp info check checked for "/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs/build/Release/node-v93-darwin-x64/ziti_sdk_nodejs.node" (not found)
npm ERR! node-pre-gyp http GET https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.2.7/Release/ziti_sdk_nodejs-v0.2.7-node-v93-darwin-x64.tar.gz
npm ERR! node-pre-gyp ERR! install response status 403 Forbidden on https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.2.7/Release/ziti_sdk_nodejs-v0.2.7-node-v93-darwin-x64.tar.gz 
npm ERR! node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v93 ABI, unknown) (falling back to source compile with node-gyp) 
npm ERR! node-pre-gyp WARN Hit error response status 403 Forbidden on https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.2.7/Release/ziti_sdk_nodejs-v0.2.7-node-v93-darwin-x64.tar.gz 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | darwin | x64
npm ERR! gyp info ok 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | darwin | x64
npm ERR! gyp info find Python using Python version 3.9.5 found at "/usr/local/opt/[email protected]/bin/python3.9"
npm ERR! gyp info spawn /usr/local/opt/[email protected]/bin/python3.9
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'make',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/Users/evangertis/Library/Caches/node-gyp/16.11.0/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/Users/evangertis/Library/Caches/node-gyp/16.11.0',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/Users/evangertis/Library/Caches/node-gyp/16.11.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp: Undefined variable BUILD_DATE in binding.gyp while trying to load binding.gyp
npm ERR! gyp ERR! configure error 
npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1
npm ERR! gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:353:16)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:390:28)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
npm ERR! gyp ERR! System Darwin 19.6.0
npm ERR! gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs/build/Release/node-v93-darwin-x64/ziti_sdk_nodejs.node" "--module_name=ziti_sdk_nodejs" "--module_path=/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs/build/Release/node-v93-darwin-x64" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v93"
npm ERR! gyp ERR! cwd /Users/evangertis/myapp/node_modules/ziti-sdk-nodejs
npm ERR! gyp ERR! node -v v16.11.0
npm ERR! gyp ERR! node-gyp -v v8.2.0
npm ERR! gyp ERR! not ok 
npm ERR! node-pre-gyp ERR! build error 
npm ERR! node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs/build/Release/node-v93-darwin-x64/ziti_sdk_nodejs.node --module_name=ziti_sdk_nodejs --module_path=/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs/build/Release/node-v93-darwin-x64 --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93' (1)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/evangertis/myapp/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:390:28)
npm ERR! node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1064:16)
npm ERR! node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
npm ERR! node-pre-gyp ERR! System Darwin 19.6.0
npm ERR! node-pre-gyp ERR! command "/usr/local/bin/node" "/Users/evangertis/myapp/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
npm ERR! node-pre-gyp ERR! cwd /Users/evangertis/myapp/node_modules/ziti-sdk-nodejs
npm ERR! node-pre-gyp ERR! node -v v16.11.0
npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.5
npm ERR! node-pre-gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/evangertis/.npm/_logs/2021-10-08T20_13_06_500Z-debug.log

I've tried the following:

  1. npm update
  2. Running the commands:
/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs/build/Release/node-v93-darwin-x64/ziti_sdk_nodejs.node" "--module_name=ziti_sdk_nodejs" "--module_path=/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs/build/Release/node-v93-darwin-x64" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v93
/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs/build/Release/node-v93-darwin-x64/ziti_sdk_nodejs.node --module_name=ziti_sdk_nodejs --module_path=/Users/evangertis/myapp/node_modules/ziti-sdk-nodejs/build/Release/node-v93-darwin-x64 --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93

Both executed successfully independent of the install.

  1. I created a binding.gyp file
  1  {                                                                                                                                                                                                                                         
  2   "targets": [
  3     {
  4       "target_name": "binding",
  5       "sources": [ "src/binding.cc" ]
  6     }
  7   ]
  8 }

I'd appreciate any advice on next steps to move forward.

Thanks,
Evan

Windows install errors

Hi. I've been unable to get this to install on Windows and could do with some assistance.

I have tried the following:

With Python & windows build tools:

  • Windows 11

    • nvm
      • v14.21.3
      • v16.20.3
      • v18.18.2
  • Windows 10 (a different machine)

    • nvm
      • v14.21.3
      • v16.20.3
      • v18.18.2
    • NodeJS standalone
      • v16.20.3
      • v18.18.2

It's always seems to error out at the same place:

68 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\promise-spawn\lib\index.js:63:27)
68 verbose stack     at ChildProcess.emit (node:events:513:28)
68 verbose stack     at maybeClose (node:internal/child_process:1100:16)
68 verbose stack     at Socket.<anonymous> (node:internal/child_process:458:11)
68 verbose stack     at Socket.emit (node:events:513:28)
68 verbose stack     at Pipe.<anonymous> (node:net:301:12)

and

79 error node-pre-gyp http GET https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.13.3/Release/ziti_sdk_nodejs-v0.13.3-node-v93-win32-x64.tar.gz

If anyone can offer any advice I would be grateful.

I've included a full log file (Windows/NodeJs standalone/v16.20.2) below.

Thanks

0 verbose cli C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js
1 info using [email protected]
2 info using [email protected]
3 timing npm:load:whichnode Completed in 1ms
4 timing config:load:defaults Completed in 3ms
5 timing config:load:file:C:\Program Files\nodejs\node_modules\npm\npmrc Completed in 14ms
6 timing config:load:builtin Completed in 14ms
7 timing config:load:cli Completed in 2ms
8 timing config:load:env Completed in 3ms
9 timing config:load:file:C:\Users\accou\Development\Temp\openziti\.npmrc Completed in 1ms
10 timing config:load:project Completed in 3ms
11 timing config:load:file:C:\Users\accou\.npmrc Completed in 1ms
12 timing config:load:user Completed in 1ms
13 timing config:load:file:C:\Users\accou\AppData\Roaming\npm\etc\npmrc Completed in 0ms
14 timing config:load:global Completed in 1ms
15 timing config:load:validate Completed in 1ms
16 timing config:load:credentials Completed in 2ms
17 timing config:load:setEnvs Completed in 2ms
18 timing config:load Completed in 33ms
19 timing npm:load:configload Completed in 33ms
20 timing npm:load:mkdirpcache Completed in 1ms
21 timing npm:load:mkdirplogs Completed in 0ms
22 verbose title npm i @openziti/ziti-sdk-nodejs
23 verbose argv "i" "@openziti/ziti-sdk-nodejs"
24 timing npm:load:setTitle Completed in 2ms
25 timing config:load:flatten Completed in 6ms
26 timing npm:load:display Completed in 9ms
27 verbose logfile logs-max:10 dir:C:\Users\accou\AppData\Local\npm-cache\_logs
28 verbose logfile C:\Users\accou\AppData\Local\npm-cache\_logs\2023-10-19T18_25_56_940Z-debug-0.log
29 timing npm:load:logFile Completed in 10ms
30 timing npm:load:timers Completed in 0ms
31 timing npm:load:configScope Completed in 0ms
32 timing npm:load Completed in 58ms
33 timing arborist:ctor Completed in 1ms
34 silly logfile done cleaning log files
35 timing idealTree:init Completed in 106ms
36 timing idealTree:userRequests Completed in 3ms
37 silly idealTree buildDeps
38 silly fetch manifest @openziti/ziti-sdk-nodejs@*
39 verbose shrinkwrap failed to load node_modules/.package-lock.json out of date, updated: node_modules/@openziti
40 http fetch GET 200 https://registry.npmjs.org/@openziti%2fziti-sdk-nodejs 2030ms (cache revalidated)
41 silly placeDep ROOT @openziti/[email protected] OK for: [email protected] want: *
42 timing idealTree:#root Completed in 2045ms
43 timing idealTree:node_modules/@openziti/ziti-sdk-nodejs Completed in 0ms
44 timing idealTree:buildDeps Completed in 2047ms
45 timing idealTree:fixDepFlags Completed in 1ms
46 timing idealTree Completed in 2160ms
47 timing reify:loadTrees Completed in 2162ms
48 timing reify:diffTrees Completed in 10ms
49 silly reify moves {}
50 timing reify:retireShallow Completed in 2ms
51 timing reify:createSparse Completed in 5ms
52 timing reify:loadBundles Completed in 0ms
53 silly audit bulk request {
53 silly audit   '@mapbox/node-pre-gyp': [ '1.0.11' ],
53 silly audit   abbrev: [ '1.1.1' ],
53 silly audit   'agent-base': [ '6.0.2' ],
53 silly audit   'ansi-regex': [ '5.0.1' ],
53 silly audit   aproba: [ '2.0.0' ],
53 silly audit   'are-we-there-yet': [ '2.0.0' ],
53 silly audit   'balanced-match': [ '1.0.2' ],
53 silly audit   'brace-expansion': [ '1.1.11' ],
53 silly audit   chownr: [ '2.0.0' ],
53 silly audit   'color-support': [ '1.1.3' ],
53 silly audit   'concat-map': [ '0.0.1' ],
53 silly audit   'console-control-strings': [ '1.1.0' ],
53 silly audit   debug: [ '4.3.4' ],
53 silly audit   delegates: [ '1.0.0' ],
53 silly audit   'detect-libc': [ '2.0.2' ],
53 silly audit   'emoji-regex': [ '8.0.0' ],
53 silly audit   'fs-minipass': [ '2.1.0' ],
53 silly audit   minipass: [ '3.3.6', '5.0.0' ],
53 silly audit   'fs.realpath': [ '1.0.0' ],
53 silly audit   gauge: [ '3.0.2' ],
53 silly audit   glob: [ '7.2.3' ],
53 silly audit   'has-unicode': [ '2.0.1' ],
53 silly audit   'https-proxy-agent': [ '5.0.1' ],
53 silly audit   inflight: [ '1.0.6' ],
53 silly audit   inherits: [ '2.0.4' ],
53 silly audit   'is-fullwidth-code-point': [ '3.0.0' ],
53 silly audit   'lru-cache': [ '6.0.0' ],
53 silly audit   'make-dir': [ '3.1.0' ],
53 silly audit   semver: [ '6.3.1', '7.5.4' ],
53 silly audit   minimatch: [ '3.1.2' ],
53 silly audit   minizlib: [ '2.1.2' ],
53 silly audit   mkdirp: [ '1.0.4' ],
53 silly audit   ms: [ '2.1.2' ],
53 silly audit   'node-fetch': [ '2.7.0' ],
53 silly audit   nopt: [ '5.0.0' ],
53 silly audit   npmlog: [ '5.0.1' ],
53 silly audit   'object-assign': [ '4.1.1' ],
53 silly audit   once: [ '1.4.0' ],
53 silly audit   'path-is-absolute': [ '1.0.1' ],
53 silly audit   'readable-stream': [ '3.6.2' ],
53 silly audit   rimraf: [ '3.0.2' ],
53 silly audit   'safe-buffer': [ '5.2.1' ],
53 silly audit   'set-blocking': [ '2.0.0' ],
53 silly audit   'signal-exit': [ '3.0.7' ],
53 silly audit   string_decoder: [ '1.3.0' ],
53 silly audit   'string-width': [ '4.2.3' ],
53 silly audit   'strip-ansi': [ '6.0.1' ],
53 silly audit   tar: [ '6.2.0' ],
53 silly audit   tr46: [ '0.0.3' ],
53 silly audit   'util-deprecate': [ '1.0.2' ],
53 silly audit   'webidl-conversions': [ '3.0.1' ],
53 silly audit   'whatwg-url': [ '5.0.0' ],
53 silly audit   'wide-align': [ '1.1.5' ],
53 silly audit   wrappy: [ '1.0.2' ],
53 silly audit   yallist: [ '4.0.0' ],
53 silly audit   '@openziti/ziti-sdk-nodejs': [ '0.13.3' ]
53 silly audit }
54 timing reifyNode:node_modules/@openziti/ziti-sdk-nodejs Completed in 228ms
55 timing reify:unpack Completed in 229ms
56 timing reify:unretire Completed in 0ms
57 timing build:queue Completed in 2ms
58 info run @openziti/[email protected] install node_modules/@openziti/ziti-sdk-nodejs node-pre-gyp install --fallback-to-build
59 http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/advisories/bulk 371ms
60 timing auditReport:getReport Completed in 377ms
61 silly audit report {}
62 timing auditReport:init Completed in 1ms
63 timing reify:audit Completed in 379ms
64 info run @openziti/[email protected] install { code: 1, signal: null }
65 timing reify:rollback:createSparse Completed in 31ms
66 timing reify:rollback:retireShallow Completed in 0ms
67 timing command:i Completed in 7251ms
68 verbose stack Error: command failed
68 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\promise-spawn\lib\index.js:63:27)
68 verbose stack     at ChildProcess.emit (node:events:513:28)
68 verbose stack     at maybeClose (node:internal/child_process:1100:16)
68 verbose stack     at Socket.<anonymous> (node:internal/child_process:458:11)
68 verbose stack     at Socket.emit (node:events:513:28)
68 verbose stack     at Pipe.<anonymous> (node:net:301:12)
69 verbose pkgid @openziti/[email protected]
70 verbose cwd C:\Users\accou\Development\Temp\openziti
71 verbose Windows_NT 10.0.19045
72 verbose node v16.20.2
73 verbose npm  v8.19.4
74 error code 1
75 error path C:\Users\accou\Development\Temp\openziti\node_modules\@openziti\ziti-sdk-nodejs
76 error command failed
77 error command C:\Windows\system32\cmd.exe /d /s /c node-pre-gyp install --fallback-to-build
78 error Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=C:\Users\accou\Development\Temp\openziti\node_modules\@openziti\ziti-sdk-nodejs\build\Release\node-v93-win32-x64\ziti_sdk_nodejs.node --module_name=ziti_sdk_nodejs --module_path=C:\Users\accou\Development\Temp\openziti\node_modules\@openziti\ziti-sdk-nodejs\build\Release\node-v93-win32-x64 --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93' (1)
79 error node-pre-gyp info it worked if it ends with ok
79 error node-pre-gyp info using [email protected]
79 error node-pre-gyp info using [email protected] | win32 | x64
79 error node-pre-gyp info check checked for "C:\Users\accou\Development\Temp\openziti\node_modules\@openziti\ziti-sdk-nodejs\build\Release\node-v93-win32-x64\ziti_sdk_nodejs.node" (not found)
79 error node-pre-gyp http GET https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.13.3/Release/ziti_sdk_nodejs-v0.13.3-node-v93-win32-x64.tar.gz
79 error node-pre-gyp ERR! install response status 403 Forbidden on https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.13.3/Release/ziti_sdk_nodejs-v0.13.3-node-v93-win32-x64.tar.gz 
79 error node-pre-gyp WARN Pre-built binaries not installable for @openziti/[email protected] and [email protected] (node-v93 ABI, unknown) (falling back to source compile with node-gyp) 
79 error node-pre-gyp WARN Hit error response status 403 Forbidden on https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.13.3/Release/ziti_sdk_nodejs-v0.13.3-node-v93-win32-x64.tar.gz 
79 error gyp info it worked if it ends with ok
79 error gyp info using [email protected]
79 error gyp info using [email protected] | win32 | x64
79 error gyp info ok 
79 error gyp info it worked if it ends with ok
79 error gyp info using [email protected]
79 error gyp info using [email protected] | win32 | x64
79 error gyp info find Python using Python version 3.11.1 found at "C:\Users\accou\AppData\Local\Programs\Python\Python311\python.exe"
79 error gyp info find VS using VS2019 (16.11.34114.132) found at:
79 error gyp info find VS "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools"
79 error gyp info find VS run with --verbose for detailed information
79 error gyp info spawn C:\Users\accou\AppData\Local\Programs\Python\Python311\python.exe
79 error gyp info spawn args [
79 error gyp info spawn args   'C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\gyp\\gyp_main.py',
79 error gyp info spawn args   'binding.gyp',
79 error gyp info spawn args   '-f',
79 error gyp info spawn args   'msvs',
79 error gyp info spawn args   '-I',
79 error gyp info spawn args   'C:\\Users\\accou\\Development\\Temp\\openziti\\node_modules\\@openziti\\ziti-sdk-nodejs\\build\\config.gypi',
79 error gyp info spawn args   '-I',
79 error gyp info spawn args   'C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\addon.gypi',
79 error gyp info spawn args   '-I',
79 error gyp info spawn args   'C:\\Users\\accou\\AppData\\Local\\node-gyp\\Cache\\16.20.2\\include\\node\\common.gypi',
79 error gyp info spawn args   '-Dlibrary=shared_library',
79 error gyp info spawn args   '-Dvisibility=default',
79 error gyp info spawn args   '-Dnode_root_dir=C:\\Users\\accou\\AppData\\Local\\node-gyp\\Cache\\16.20.2',
79 error gyp info spawn args   '-Dnode_gyp_dir=C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp',
79 error gyp info spawn args   '-Dnode_lib_file=C:\\\\Users\\\\accou\\\\AppData\\\\Local\\\\node-gyp\\\\Cache\\\\16.20.2\\\\<(target_arch)\\\\node.lib',
79 error gyp info spawn args   '-Dmodule_root_dir=C:\\Users\\accou\\Development\\Temp\\openziti\\node_modules\\@openziti\\ziti-sdk-nodejs',
79 error gyp info spawn args   '-Dnode_engine=v8',
79 error gyp info spawn args   '--depth=.',
79 error gyp info spawn args   '--no-parallel',
79 error gyp info spawn args   '--generator-output',
79 error gyp info spawn args   'C:\\Users\\accou\\Development\\Temp\\openziti\\node_modules\\@openziti\\ziti-sdk-nodejs\\build',
79 error gyp info spawn args   '-Goutput_dir=.'
79 error gyp info spawn args ]
79 error gyp: Call to 'date' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
79 error gyp ERR! configure error 
79 error gyp ERR! stack Error: `gyp` failed with exit code: 1
79 error gyp ERR! stack     at ChildProcess.onCpExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:284:16)
79 error gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
79 error gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:293:12)
79 error gyp ERR! System Windows_NT 10.0.19045
79 error gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--fallback-to-build" "--module=C:\\Users\\accou\\Development\\Temp\\openziti\\node_modules\\@openziti\\ziti-sdk-nodejs\\build\\Release\\node-v93-win32-x64\\ziti_sdk_nodejs.node" "--module_name=ziti_sdk_nodejs" "--module_path=C:\\Users\\accou\\Development\\Temp\\openziti\\node_modules\\@openziti\\ziti-sdk-nodejs\\build\\Release\\node-v93-win32-x64" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v93"
79 error gyp ERR! cwd C:\Users\accou\Development\Temp\openziti\node_modules\@openziti\ziti-sdk-nodejs
79 error gyp ERR! node -v v16.20.2
79 error gyp ERR! node-gyp -v v9.1.0
79 error gyp ERR! not ok 
79 error node-pre-gyp ERR! build error 
79 error node-pre-gyp ERR! stack Error: Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=C:\Users\accou\Development\Temp\openziti\node_modules\@openziti\ziti-sdk-nodejs\build\Release\node-v93-win32-x64\ziti_sdk_nodejs.node --module_name=ziti_sdk_nodejs --module_path=C:\Users\accou\Development\Temp\openziti\node_modules\@openziti\ziti-sdk-nodejs\build\Release\node-v93-win32-x64 --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93' (1)
79 error node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (C:\Users\accou\Development\Temp\openziti\node_modules\@mapbox\node-pre-gyp\lib\util\compile.js:89:23)
79 error node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
79 error node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1100:16)
79 error node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
79 error node-pre-gyp ERR! System Windows_NT 10.0.19045
79 error node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\accou\\Development\\Temp\\openziti\\node_modules\\@mapbox\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build"
79 error node-pre-gyp ERR! cwd C:\Users\accou\Development\Temp\openziti\node_modules\@openziti\ziti-sdk-nodejs
79 error node-pre-gyp ERR! node -v v16.20.2
79 error node-pre-gyp ERR! node-pre-gyp -v v1.0.11
79 error node-pre-gyp ERR! not ok
80 verbose exit 1
81 timing npm Completed in 7666ms
82 verbose unfinished npm timer reify 1697739957239
83 verbose unfinished npm timer reify:build 1697739959678
84 verbose unfinished npm timer build 1697739959678
85 verbose unfinished npm timer build:deps 1697739959678
86 verbose unfinished npm timer build:run:install 1697739959680
87 verbose unfinished npm timer build:run:install:node_modules/@openziti/ziti-sdk-nodejs 1697739959681

CJS server side example code?

ChatGPT gave me something like

const express = require('express').default;
const ziti = require('@openziti/ziti-sdk-nodejs').default;

// Your existing ExpressJS setup
const app = express();
// ... (other middleware, routes, etc.)

// Wrap your existing ExpressJS app with Ziti
const zitiApp = ziti.express(app, 'yourZitiServiceName');

// Listen
zitiApp.listen(3000, () => {
  console.log('Server running on http://localhost:3000/');
});

when I told it I want to integrate into Owasp Juice Shop app. But is there a more concrete example.

Forbidden error on MacOS Node 16

Hi,

I tried installing Node SDK. It seems some repos are not available or have moved.
https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.13.3/Release/ziti_sdk_nodejs-v0.13.3-node-v93-darwin-arm64.tar.gz

`

npm ERR! code 1
npm ERR! path /Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs
npm ERR! command failed
npm ERR! command sh -c -- node-pre-gyp install --fallback-to-build
npm ERR! Failed to execute '/Users/user/.nvm/versions/node/v16.17.0/bin/node /Users/user/.nvm/versions/node/v16.17.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs/build/Release/node-v93-darwin-arm64/ziti_sdk_nodejs.node --module_name=ziti_sdk_nodejs --module_path=/Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs/build/Release/node-v93-darwin-arm64 --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93 --python=/opt/homebrew/bin/python3' (1)
npm ERR! node-pre-gyp info it worked if it ends with ok
npm ERR! node-pre-gyp info using [email protected]
npm ERR! node-pre-gyp info using [email protected] | darwin | arm64
npm ERR! node-pre-gyp info check checked for "/Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs/build/Release/node-v93-darwin-arm64/ziti_sdk_nodejs.node" (not found)
npm ERR! node-pre-gyp http GET https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.13.3/Release/ziti_sdk_nodejs-v0.13.3-node-v93-darwin-arm64.tar.gz
npm ERR! node-pre-gyp ERR! install response status 403 Forbidden on https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.13.3/Release/ziti_sdk_nodejs-v0.13.3-node-v93-darwin-arm64.tar.gz
npm ERR! node-pre-gyp WARN Pre-built binaries not installable for @openziti/[email protected] and [email protected] (node-v93 ABI, unknown) (falling back to source compile with node-gyp)
npm ERR! node-pre-gyp WARN Hit error response status 403 Forbidden on https://ziti-npm.s3.amazonaws.com/ziti_sdk_nodejs/v0.13.3/Release/ziti_sdk_nodejs-v0.13.3-node-v93-darwin-arm64.tar.gz
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | darwin | arm64
npm ERR! gyp info ok
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | darwin | arm64
npm ERR! gyp info find Python using Python version 3.11.4 found at "/opt/homebrew/opt/[email protected]/bin/python3.11"
npm ERR! gyp info spawn /opt/homebrew/opt/[email protected]/bin/python3.11
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/Users/user/.nvm/versions/node/v16.17.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/Users/user/.nvm/versions/node/v16.17.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/Users/user/Library/Caches/node-gyp/16.17.0/include/node/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/Users/user/Library/Caches/node-gyp/16.17.0',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/Users/user/.nvm/versions/node/v16.17.0/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/Users/user/Library/Caches/node-gyp/16.17.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! fatal: not a git repository (or any of the parent directories): .git
npm ERR! gyp: Call to 'git branch --show-current' returned exit status 128 while in binding.gyp. while trying to load binding.gyp
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: gyp failed with exit code: 1
npm ERR! gyp ERR! stack at ChildProcess.onCpExit (/Users/user/.nvm/versions/node/v16.17.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:284:16)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
npm ERR! gyp ERR! System Darwin 22.5.0
npm ERR! gyp ERR! command "/Users/user/.nvm/versions/node/v16.17.0/bin/node" "/Users/user/.nvm/versions/node/v16.17.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs/build/Release/node-v93-darwin-arm64/ziti_sdk_nodejs.node" "--module_name=ziti_sdk_nodejs" "--module_path=/Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs/build/Release/node-v93-darwin-arm64" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v93" "--python=/opt/homebrew/bin/python3"
npm ERR! gyp ERR! cwd /Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs
npm ERR! gyp ERR! node -v v16.17.0
npm ERR! gyp ERR! node-gyp -v v9.1.0
npm ERR! gyp ERR! not ok
npm ERR! node-pre-gyp ERR! build error
npm ERR! node-pre-gyp ERR! stack Error: Failed to execute '/Users/user/.nvm/versions/node/v16.17.0/bin/node /Users/user/.nvm/versions/node/v16.17.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs/build/Release/node-v93-darwin-arm64/ziti_sdk_nodejs.node --module_name=ziti_sdk_nodejs --module_path=/Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs/build/Release/node-v93-darwin-arm64 --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93 --python=/opt/homebrew/bin/python3' (1)
npm ERR! node-pre-gyp ERR! stack at ChildProcess. (/Users/user/app/ziti/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
npm ERR! node-pre-gyp ERR! stack at ChildProcess.emit (node:events:513:28)
npm ERR! node-pre-gyp ERR! stack at maybeClose (node:internal/child_process:1093:16)
npm ERR! node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)
npm ERR! node-pre-gyp ERR! System Darwin 22.5.0
npm ERR! node-pre-gyp ERR! command "/Users/user/.nvm/versions/node/v16.17.0/bin/node" "/Users/user/app/ziti/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
npm ERR! node-pre-gyp ERR! cwd /Users/user/app/ziti/node_modules/@openziti/ziti-sdk-nodejs
npm ERR! node-pre-gyp ERR! node -v v16.17.0
npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.11
npm ERR! node-pre-gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/user/.npm/_logs/2023-08-09T02_33_53_137Z-debug-0.log

`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.