Code Monkey home page Code Monkey logo

sn-admin's Introduction

Legacy feature alert

Please note that this is a legacy feature which is no longer supported on the latest (and greatest) sensenet version.

sensenet as a service (SNaaS) - use sensenet from the cloud

For a monthly subscription fee, we store all your content and data, relieving you of all maintenance-related tasks and installation, ensuring easy onboarding, easy updates, and patches.

https://www.sensenet.com/pricing

sensenet SnAdmin

Upgrade and package executor tool for sensenet. It can be used to execute packages (e.g. upgrade packages published for Enterprise customers, or custom packages assembled by anyone) that change the Content Repository or the web application folder. It also helps developers and operators automate their processes (e.g. a build or deployment workflow).

SnAdmin can be considered as a framework built on a script language that describes a set of steps to be executed one after the other. sensenet offers many built-in steps and it is also possible for third party developers to create custom steps to include in custom packages.

The binaries of this tool are distributed via a NuGet package, but you do not have to install it manually: it is installed as a dependency of the main sensenet release.

Usage

Executing a package

SnAdmin <packagename>

Help

Display usage and available package names and descriptions:

SnAdmin -help

Get package description and parameter list:

SnAdmin <packagename> -help

For details, examples and extensibility options please visit the following article:

sn-admin's People

Contributors

gitter-badger avatar herflis avatar huszerlbence avatar kavics avatar tusmester avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

sn-admin's Issues

Package sandbox directory

Currently the sandbox folder (called run) is created next to the package that is executed. If packages are stored in multiple folders all over in the file system (instead of a single place), these run folders are created in many different places.

Possible solutions

  1. configure a fixed sandbox folder path
  2. always create the sandbox folder in the parent of SnAdmin.exe instead of the parent of the current package
  3. always copy the package into the Admin folder and execute it from there

Cleanup package folder

The algorithm of executing packages allows you to provide a package name without the (zip) extension. This is useful, because it lets us have packages as folders, without a zip file - take Admin\tools for example, a container that contains built-in tool folders, not zip files.

The problem with the current behavior is that if there is a zip file and a folder with the same name, SnAdmin uses the folder, even if the zip package is newer. This leads to a confusing install process (for example when we update a nuget package to a newer version that contains a new zip package).

Solution: if you execute the package with a name (without extension) and there is a zip file there, we should always execute the zip file. If a folder is there from a previous execution, than delete it before the operation.

Package installation telemetry

It would be cool if we added a telemetry layer to SnAdmin that would allow us to track what kind of packages are installed (similar to the install/download counter on nuget.org).

  • When SnAdmin is executed, try to send some basic info to a central url about the package.
  • Strictly anonymous, we do not want to know actually who installed what, we just want to track package usage.
  • Store only:
    • package id
    • package version
    • install date
    • result (success/error)
  • Only track 'official' sensenet ECM packages, not 3rd party ones.
  • Clearly communicate this.
  • Must be unobtrusive and robust - do not interfere with package execution in any way (e.g. send info in the background, not slowing down the execution process).

Questions

  • opt in or opt out?

BUG: Manifest not found.

This command: .\SnAdmin.exe sn-services-patch-7.0.0-7.1.3 creates an empty directory: sn-services-patch-7.0.0-7.1 and applies it as package directory. It causes an InvalidPackageException: "Manifest not found."

Incorrect encoding when a parameter ends with a backslash

The following SnAdmin parameter list results in an incorrectly interpreted param list:

SnAdmin.exe export source:/Root/IMS target:c:\temp\

Note the backslash at the end of the target path. The problem is that SnAdmin puts a quote around the parameter value and passes it over to the SnAdminRuntime tool as a command line argument. It will become this:

target:"c:\temp\"

The result is that SnAdminRuntime receives an incorrect argument (and all arguments after the wrong one will be missing) - so this problem needs to be fixed here, in SnAdmin.

Current workaround is to remove the backslash - which is OK in case of a path, but there can be a different type of parameter where that character is mandatory.

Note: using a manual quote around the target parameter does not work either, so that cannot be a workaround.

Extract packages made with PowerShell

Currently if a package was compressed using PowerShell (Compress-Archive), SnAdmin fails to extract it, possibly because of the Ionic.zip library. We should use the built-in .Net API for extracting packages.

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.