Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
ember-cli-deploy-zookeeper
Advanced tools
An ember-cli-deploy plugin to upload index.html (and other required files) to a Zookeeper database
This plugin uploads files, presumably just index.html, to your Zookeeper databse at a provided path.
More often than not this plugin will be used in conjunction with the lightning method of deployment where the ember application assets will be served from S3 and the index.html file will be served from Zookeepr. However, it can be used to upload any file to Zookeeper.
A plugin is an addon that can be executed as a part of the ember-cli-deploy pipeline. A plugin will implement one or more of the ember-cli-deploy's pipeline hooks.
For more information on what plugins are and how they work, please refer to the Plugin Documentation.
To get up and running quickly, do the following:
Ensure ember-cli-deploy-build is installed and configured.
Install this plugin
$ ember install ember-cli-deploy-zookeeper
config/deploy.js
ENV.zookeeper = {
host: '<your-zookeeper-host>',
port: <your-zookeeper-port>
}
$ ember deploy
Run the following command in your terminal:
ember install ember-cli-deploy-zookeeper
For detailed information on what plugin hooks are and how they work, please refer to the Plugin Documentation.
configure
upload
willActivate
activate
didDeploy
For detailed information on how configuration of plugins works, please refer to the Plugin Documentation.
The Zookeeper host. This may be a comma separated string of hosts/ports.
Default: 'localhost:2181'
The files in the distDir
that should be uploaded to Zookeeper.
Default: ['index.html']
The root directory where the file matching filePattern
will be searched for. By default, this option will use the distDir
property of the deployment context.
Default: context.distDir
The prefix to be used for the Zookeeper path under which file will be uploaded to Redis. The Redis key will be a combination of the keyPrefix
and the revisionKey
. By default this option will use the project.name()
property from the deployment context.
Default: context.project.name() + ':index'
The unique revision number for the version of the file being uploaded to Zookeeper. The Zookeeper key will be a combination of the keyPrefix
and the revisionKey
. By default this option will use either the revisionKey
passed in from the command line or the revisionData.revisionKey
property from the deployment context.
Default: context.commandLineArgs.revisionKey || context.revisionData.revisionKey
A flag to specify whether the revision should be overwritten if it already exists in Zookeeper.
Default: false
The Zookeeper client to be used to upload files to the Zookeeper store. By default this option will use a new instance of the Zookeeper client. This allows for injection of a mock client for testing purposes.
Default: return new Zookeeper(options)
A message that will be displayed after the file has been successfully uploaded to Zookeeper. By default this message will only display if the revision for revisionData.revisionKey
of the deployment context has been activated.
Default:
if (context.revisionData.revisionKey && !context.revisionData.activatedRevisionKey) {
return "Deployed but did not activate revision " + context.revisionData.revisionKey + ". "
+ "To activate, run: "
+ "ember deploy:activate " + context.revisionData.revisionKey + " --environment=" + context.deployEnvironment + "\n";
}
Unofortunately, the underlying Zookeeper Library does not signal when the attempt to connect has resulted in an error. Instead, the library will continue to try to reconnect indefinitely. This will cancel attempts to connect after a given period of time.
Default: 2000
As well as uploading a file to Zookeeper, ember-cli-deploy-zookeeper has the ability to mark a revision of a deployed file as current
. This is most commonly used in the lightning method of deployment whereby an index.html file is pushed to Zookeeper and then served to the user by a web server. The web server could be configured to return any existing revision of the index.html file as requested by a query parameter. However, the revision marked as the currently active
revision would be returned if no query paramter is present. For more detailed information on this method of deployment please refer to the ember-cli-deploy-lightning-pack README.
In Zookeeper, the active key will be the value at the path /${keyPrefix}
A user can activate a revision by either:
deploy
command:$ ember deploy --activate=true
deploy:activate
command:$ ember deploy:activate <revision-key>
activateOnDeploy
flag in deploy.js
ENV.pipeline = {
activateOnDeploy: true
}
When ember-cli-deploy-zookeeper uploads a file to Zookeeper, it uploads it under the key defined by a combination of the two config properties keyPrefix
and revisionKey
.
So, if the keyPrefix
was configured to be my-app
and there had been 3 revisons deployed, then Redis might look something like this:
$ zkCli
[zk: localhost:2181(Connected) 1] ls /my-app
[revisions, 9ab2021411f0cbc5ebd5ef8ddcd85cef, 499f5ac793551296aaf7f1ec74b2ca79, f769d3afb67bd20ccdb083549048c86c]
[zk: localhost:2181(Connected) 1] ls /my-app/499f5ac793551296aaf7f1ec74b2ca79
[index.html, robots.txt]
Activating a revision would change the value of /key-prefix
pointing to the currently active revision.
$ ember deploy:activate --revision=499f5ac793551296aaf7f1ec74b2ca79
$ zkCli
[zk: localhost:2181(Connected) 1] get /my-app
499f5ac793551296aaf7f1ec74b2ca79
Activation occurs during the activate
hook of the pipeline. By default, activation is turned off and must be explicitly enabled by one of the 3 methods above.
The following properties are expected to be present on the deployment context
object:
distDir
(provided by ember-cli-deploy-build)project.name()
(provided by ember-cli-deploy)revisionData.revisionKey
(provided by ember-cli-deploy-revision-data)commandLineArgs.revisionKey
(provided by ember-cli-deploy)deployEnvironment
(provided by ember-cli-deploy)npm test
FAQs
The default blueprint for ember-cli addons.
The npm package ember-cli-deploy-zookeeper receives a total of 1 weekly downloads. As such, ember-cli-deploy-zookeeper popularity was classified as not popular.
We found that ember-cli-deploy-zookeeper demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.