npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@agility/cli

v0.0.16

Published

Agility CLI for working with your content.

Downloads

119

Readme

Agility CLI

About the Agility CLI

  • Provides a facility to developers to use the new Agility Management API more effectively.
  • Provides features to perform operations to login to agility instance, pull the instance, push the instance and clone the instance (coupling of push and pull operations).
  • Provides logs on failed records for content and pages.
  • Ability to generate Content and Pages in bulk for a Website.
  • Deleted Content, Pages, Models, Containers and Assets were not processed from the CLI.

Getting Started

Installation

Using npm

  1. To install the cli locally using npm, open terminal and type: npm i @agility/cli.
  2. For global installation using npm, open terminal and type: npm i @agility/cli -g.

Using yarn

  1. To install the cli locally using yarn, open terminal and type: yarn add @agility/cli.
  2. For global installation using yarn, open terminal and type: yarn global add @agility/cli.

Using the CLI

Authenticate first

  1. Login to agility instance using command agility login.
  2. A browser window will appear to perform the authentication process. You may have to authorize before proceeding.
  3. Once authenticated use the following steps to perform operations on your instance.
  4. You should be a Org Admin, Instance Admin or have a Manager Role in an instance to perform operations in the CLI.

Performing operations on CLI

  1. To pull an instance use the command agility pull --guid="<<Provide Guid of your Instance>>" --locale="<<Provide the locale of the Instance>>" --channel="<<Provide the channel to be pulled>>" --baseUrl="<<Optional Parameter to provide the base URL if the pull operation doesn't work. Refer the section "Base URL's".>>" to pull an instance.
  2. To push an instance use the command agility push --guid="<<Provide the target Instance guid>> --locale="<<Provide the locale of the Instance>>"
  3. For instance cloning, this command is a mix of push and pull. Use the command agility clone --sourceGuid="<<Provide Guid of your source Instance>>" --targetGuid="<<Provide the target Instance guid>>" --locale="<<Provide the locale of the Instance>>" --channel="<<Provide the channel to be cloned>>" to perform cloning between instances.
  4. To sync Models use the command agility sync-models --sourceGuid="<<Optional Parameter Guid of your source instance>>" --targetGuid="<<Optional Parameter Guid of your target Instance>>" --pull="<<Optional Parameter value true/false>>" --dryRun="<<Optional Parameter value true/false>>" --filter="<<Optional Parameter folder path where filter file is present. Ex: - C:\Agility\filterModels.json" --folder="<<Optional Parameter name of the folder where files to be exported. If no value is provided, files will be exported to .agility-files folder>>".
  5. To access the error logs, navigate to .agility-files/logs/instancelog.txt

Model Sync File samples

  1. To generate the filter file, use the following JSON format for models and templates: -
{
	"Models": ["MyModel"],//referenceName of the models.
	"Templates": ["My Template"] //Template name of the templates.
}
  1. Following is the format of the file generated for the dry run process: -
{
  "ModelReferenceName": {
    "result":{
      "added":{
      },
      "updated":{
      }
    },
    "TemplateName":{
      "result":{
        "added":{
        },
        "updated":{
        }
      }
    }
  }
}
//If a model or template is not present in the target instance, then: - 
{
  referenceName: 'Model with ModelReferenceName will be added.',
  templateName: 'Model with TemplateName will be added.'
}

The file is generated at <Folder Name>\models-sync\modelsDryRun.json (where Folder Name is .agility-files or the value provided inside the folder parameter).

Model Sync Sample commands

  1. agility model-sync --sourceGuid="abc" --targetGuid="def"- To Sync everything.
  2. agility model-sync --sourceGuid="abc" --targetGuid="def" --filter="C:\myFilter.json" - Perform Sync operation on a filter.
  3. agility model-sync --sourceGuid="abc" --folder="models" --pull=true - To perform pull operation on a folder models.
  4. agility model-sync --targetGuid="def" --folder="models" - To perform push operation from folder models.
  5. agility model-sync --targetGuid="def" --folder="models" filter="C:\myFilter.json" - To perform push operation on a filter using source folder models.
  6. agility model-sync --sourceGuid="abc" --targetGuid="def" --dryRun=true - To perform Dry Run operation.

Folder Structure

  1. If a pull or clone instance is initiated, a local folder .agility-files is created.
  2. Assets are saved inside the assets folder which consists of a json folder which has the metadata of the assets downloaded. The folder structure is .agility-files/assets/json for metadata. Rest assets are present inside the assets folder.
  3. Galleries are saved inside the .agility-files/assets/galleries in a json format which is the metadata of the galleries of your source instance.
  4. Containers metadata is present inside .agility-files/containers folder.
  5. For example, if the locale is en-us, then the Pages and Content metadata is present inside the folder .agility-files/en-us/item for Content and .agility-files/en-us/pages. These are the base folders to create Content and Pages to perform CLI push/clone. There are other folders created i.e. list, nestedsitemap, page, sitemap, state and urlredirections, which are not used by the CLI but are part of pull operation.
  6. Models metadata is present inside .agility-files/models folder.
  7. Templates metadata is present inside .agility-files/templates folder.

Base URL's

In some cases when the pull operation fails to fetch the preview key, you need to override the baseUrl for the CLI to perform the pull operation. Following is the list of Base URL's for different locations. Depeneding on the location of the instance use the Base URL value for the pull operation:

  1. USA: https://mgmt.aglty.io
  2. Canada: https://mgmt-ca.aglty.io
  3. Europe: https://mgmt-eu.aglty.io
  4. Australia: https://mgmt-aus.aglty.io

Resources

Agility CMS

Community

Feedback and Questions

If you have feedback or questions about this starter, please use the Github Issues on this repo, join our Community Slack Channel or create a post on the Agility Developer Community.