Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

castleblock

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

castleblock

CLI Program for the CastleBlock service.

  • 2.6.1
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
3
increased by200%
Maintainers
1
Weekly downloads
 
Created
Source

castleblock

The castleblock-cli interfaces with the castleblock-service API and deploys apps via a command line interface.

CLI Usage

$ castleblock
Usage:
  castleblock [OPTIONS] <command> [ARGS]

Options:
  -d, --dist [FILE]      Directory containing the built assets (Default is ./build)
  -u, --url [STRING]     URL to castleblock service (Default is http://localhost:3000)
  -e, --env FILE         Include env file in deployment (accessible from
                         ./env.json when deployed)
  -b, --build [STRING]   Build command that is run before deployment (Default is npm run build)
  -s, --src [FILE]       Source directory to watch for changes (Default is ./src)
  -f, --file FILE        Deploy an existing package
  -p, --pack BOOL        Save deployment package to disk
  -t, --token STRING     Authorization Token
  -j, --jwtSecret STRING JWT Secret Key for generating a token on the fly
  -r, --remote STRING    Deploy a remote git repo or tarball
  -h, --help             Display help and usage details

Commands:
  deploy, list, login, remove, version, watch

Manifest.json

Castleblock relies on your app's manifest.json file to deploy your app.

  • short_name - (required) Used in the url <castleblock-service-url>/ui/<short_name>/<version>/
  • version - (required) Used in the url <castleblock-service-url>/ui/<short_name>/<version>/. The version must follow the semver standard
  • name - Used in castleblock-ui app cards
  • description - Used in castleblock-ui
  • webcomponent - Set to "true" if the deployment is a web component
  • icons

Example:

{
  "short_name": "my-app",
  "version": "1.2.5",
  "name": "My Application",
  "description": "A description of the application.",
  "webcomponent": false,
  "icons": [{ "src": "./my-app-icon.png" }]
}

Deploying an app

First make sure you have the service running. In this example the service is running at http://localhost:3000

$ castleblock deploy -d ./dist
INFO: Building Project: npm run build
INFO: Compressing public/ into deployment.tar.gz
INFO: Uploading deployment.tar.gz
INFO: SHA512:
      4585948608622f9399389f651b5f14b1c286a3418fb6da0f24b2137ebb81092bd4542b9e959ee8f9ba3b4532ee11dd569b721bfdb269f3f70bfe82efe9e540f5
INFO: URL: http://localhost:3000/ui/my-app/1.2.3

Removing an app

$ castleblock remove http://localhost:3000/ui/my-app/1.2.3/

Ad hoc Deployments

The watch command allows you to deploy an adhoc version of your application to a randomly generated URL. Castleblock will watch your files for changes, rebuild, and deploy anytime you make a change. This allows you to share or demo a feature currently in development and test it directly against your microservices in your deployment environment..

$ castleblock watch -d public/
{
  dist: 'public/',
  url: 'http://localhost:3000',
  env: null,
  build: 'npm run build',
  src: './src',
  file: null,
  pack: false,
  token: null,
  jwtSecret: null
}
INFO: Watching For Changes
      Source Directory: "./src"
      Build Command: "npm run build"
INFO: Compressing public/
INFO: Building Project: npm run build

src/main.js → public/build/bundle.js...
created public/build/bundle.js in 429ms
INFO: SHA512:
      c2e2840f8a1c1b290c240ae5b15037eaf47807830862622a5d8292cc51db1c9ab51d088d33791c2414920b08303af93c81b4158d643377f7156470a21363c3fe
INFO: Uploading Package
INFO: URL: http://localhost:3000/ui/my-app/adhoc-vdzitr33w7g

Environmental Variable Injection

Sometimes your application needs to be configurable after it has already been bundled. CastleBlock provides a mechanism to include an additional json file alongside your bundled application. e the --env option to include configurations at runtime.

castleblock deploy --env mysettings.json

Accessing env.json from your App

Castleblock will inject the env.json file into your deployment, so your application can fetch(./env.json) to load custom configuration values when the application first loads. The file is always env.json, regardless of what the original filename was.

Default CLI Options

Castleblock allows you to save your own default options in a .castleblock.json file either in your home directory (globally) or in your project directory. Any of the CLI options can be set to alternative default values. See below for an example.

{
  "config": {
    "dist":"./public",
    "url":"http://myproductionsite.xyz"
    "env":"productionsettings.json",
    "build":"npm run build -- --prod",
    "src":"./src",
    "pack":true
  }
}

Keywords

FAQs

Package last updated on 30 Nov 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc