Search Results for

    Show / Hide Table of Contents

    Licensing

    Using the library requires a free or paid license and license key. This article first describes different types of licenses, followed by License Key Location details and other technical information.

    Please also see the Software License Agreement.

    Developer Licenses

    Developing any software that uses the actionETL library requires an actionETL Developer license. Each license is dedicated to one named developer, and is tied to the domain/computer account of the developer.

    The license also gives the developer the right to contact support and get help with issues, as described in the support documentation.

    Software developed with an actionETL Developer license can then be executed on any computer within the organization that purchased the developer license, using any domain/computer account.

    Developer Licence Account

    You provide the developer account name (without any domain part) to envobi to generate the license. When logged in to the target account, you can get the account name by executing the command (on either Windows or Linux):

    whoami
    
    Note

    You can also execute an actionETL application without a license to get the exact account name. Check the start of the log file, which includes a line with:

    ... System.Environment | HostName='MyHostName' UserName='MyAccountName' ...

    License Level

    Licenses are either Community, Standard or Pro level, where Community is the least capable, Standard is more capable, and Pro has full capabilities. More capable levels include all the features of lower levels.

    Trial licenses are Pro level.

    License levels support the following:

      Community Standard Pro
    Data Volumes Unlimited Unlimited Unlimited
    Number of Applications Unlimited Unlimited Unlimited
    Worker Systems per Application 1 Unlimited Unlimited
    Distinct Worker Types per Worker System 15 50 Unlimited
    Port Pass-through Dataflow Workers - - Unlimited
    Suitable for Applications of Up To Low Complexity Medium Complexity High Complexity
    Cost Free Paid Paid
    Note
    • actionETL Community edition is a completely free version of the library, including for commercial use, and we provide best-effort support for it. Please get a perpetual Community license for each account that will use it.
    • To evaluate the paid actionETL Pro edition, please get a free 30-day trial license.

    Max Worker Systems per Application

    Community licenses allow a maximum of 1 worker system per application. Standard and Pro levels are unlimited.

    Max Distinct Worker Types

    actionETL tracks how many distinct worker types are created in each worker system invocation, and the limit applies within each worker system. Standard and higher can have multiple worker systems within one application, and all license levels can use multiple applications, which can be used to partially work around this limit. This can however be inconvenient, in which case an unlimited Pro license is a better choice.

    • Each worker type, including generics, count as a distinct type, e.g. CopyFileWorker, XlsxSource<Product>, and XlsxSource<Sales> would count as three types. The same applies to any user custom worker type.
    • Each worker type, e.g. CopyFileWorker, is only counted once per worker system, and can be created an unlimited number of times.
      • The same set of worker types can therefore be created and run an unlimited number of times, e.g. processing millions of files.
    • The number of worker types used is logged at the end of each worker system invocation e.g.: "WorkerTypesUsed=7"

    This example for instance creates 13 workers, but for licensing purposes this only counts as 7 distinct worker types, since some worker types are used multiple times.

    Port Pass-through Dataflow Workers

    All licenses allow creating custom reusable (parent) workers by composing (i.e. combining) existing (dataflow and non-dataflow child) workers. See e.g. the Custom SCD Worker example.

    Unlike lower level licenses, Pro licenses furthermore allow using port pass-through dataflow workers. This enables creating custom reusable dataflow (parent) workers that have dataflow inputs and/or outputs, and have their dataflow child workers implement the actual dataflow processing (as opposed to having to re-implement the dataflow processing of existing dataflow workers).

    This feature is both powerful and useful, see Custom Dataflow Pass-through Workers for details.

    License Key Location

    By default, actionETL applications look for a license file named "actionetl.license.json" in the BaseDirectory, which is normally the same directory as the executable.

    Alternatively, set either or both of the following license configuration settings which will be processed in the below order; if these explicit license locations contain any license, then the default location will not be automatically read:

    • LicenseText - Verbatim license text. This allows the application to read the license text by any arbitrary means, using it to set this configuration.

    • LicenseFileNames - Semi colon separated list of license (absolute or relative) file names.

    Important

    Setting a non-default license location must be done before the worker system is created, i.e. using option 1 or 2 in AConfig Configuration Facility.

    License Expiration

    The expiration is defined by the license "expiration" and "endDate" fields.

    Perpetual License

    Each release has a version number that generally follows NuGet with SemVer 2.0 standards, i.e. a "Major.Minor.Patch[-Prerelease]" version, e.g. "1.13.0" or "1.14.0-beta.1", where "Major" increments on breaking changes, "Minor" increments on backward compatible new features, and "Patch" increments on backward compatible bug fixes.

    Each initial (non-pre-release) "Minor" release (i.e. version X.Y.0) defines the MinorVersionReleaseDate, a date that remains unchanged for new "Patch" releases until the "Minor" or "Major" version is incremented.

    For licenses with an active support subscription, you may use any available release, including new “Major” and “Minor” versions released after your license purchase.

    Paid licenses are perpetual, and are valid indefinitely for any release with a MinorVersionReleaseDate not greater than the end date of your last active support subscription for the license. This includes any “Patch” releases where the “Major” and “Minor” versions have not changed since the end date of your support subscription.

    For instance, a new perpetual license with an "endDate" one year in the future allows running any (including any new "Major" and "Minor") actionETL versions released within one year, as well as any later "Patch" releases that still have a MinorVersionReleaseDate not greater than the license "endDate". The license never expires, but doesn't support "Minor" or "Major" releases released after "endDate". To use these even newer releases, a new license is required, normally received via a support subscription.

    Note

    Big advantages of this approach include:

    • An existing commercial license running an existing actionETL version will never expire - it's only when upgrading to a newer "Major" or "Minor" version that the license could potentially become invalid.
    • Even if you let your support subscription lapse, you will still get access to any later "Patch" releases of your existing "Minor" version.

    Community licenses are also perpetual and follow the same validity rules as the paid licenses, except that renewing the license is free of charge.

    TimeLimited License

    Trial and Beta licenses are TimeLimited, where the license is valid (for any contemporary or older actionETL version) up to and including the "endDate", and invalid after that date.

    License Content

    Here is a sample license file, with one Perpetual Standard license for the "stewartp" named account, and one TimeLimited Pro Trial license for the "nickc" named account. In this way, multiple license files and groups can be combined in a single file by adding the individual license group JSON objects to the top level "licenseGroups" JSON array. Note that otherwise the only user editable properties are the "comment" properties, which can be added and used for e.g. contact details.

    {
      "licenseGroups": [
        {
          "comment": "Comment, can be modified.",
          "watermark": "ACME Inc",
          "id": "EAAAA",
          "licenses": [
            {
              "comment": "Comment, can be modified.",
              "id": "EAAAA-AAADS-AZZIE",
              "product": "actionETL Developer Standard Account",
              "expiration": "Perpetual",
              "endDate": "2021-07-20",
              "account": "stewartp"
              "description": "Stewart Pendragon"
            },
            {
              "id": "EAAAA-ABAES-ZZZRS",
              "product": "actionETL Execution Standard",
              "expiration": "Perpetual",
              "endDate": "2021-07-20"
            }
          ],
          "signature": "fwefbhjOUBUGu87676jhbkjhVKhgvkhgv876hgJBVKJhvkvgkKHJVkhvg87678HGF32+1Vze97652hkgvwHGVF8756mq2SI2OLKhxmwTrqZFrx2YoVGPMnLOWjVdR98vrICUd5CLZwGojKBOYebuHpYbKZ/l1DyYJrihvqGlxcMOMmci+8R5lMictJ7o4ujtPILorT88q5NuOjf/mY/oVALqASB1/TMWKAJL76fVKjwXqWL47Uavfl5dGnv4hXq5FXzKRDG5RKp/ymKA6cLmB8pAjsG+P6GJGdyZUYkajo00fD48li5qKzCiw/kOJUC8kRXHN/TcTuRQ0PdcWWmhBQ9dfuBasx0m+vWNoeWBcQ4cOHNJrR7BrZ6gJjW/Z/ZVgabvBLRWV8u74T/VR/m1tJt64XSQHJELy8OxHrhM0rsFcx7mcsHDY0uL9GAwZscit7lgUrGNDJEEE44dVRTzpBkVCUcobP7Zzx8F4hVJiGo4P6cuMzNr7TtqeZ9RfJvo"
        },
        {
          "id": "EAAAB",
          "watermark": "ACME Inc Trial",
          "licenses": [
            {
              "comment": "Comment, can be modified.",
              "id": "EAAAB-AAADP-ATZIBB",
              "product": "actionETL Developer Pro Account Trial",
              "expiration": "TimeLimited",
              "endDate": "2020-03-25",
              "account": "nickc"
              "description": "Nick Carter"
            },
            {
              "id": "EAAAB-ABAEP-TZZRS",
              "product": "actionETL Execution Pro Trial",
              "expiration": "TimeLimited",
              "endDate": "2020-03-25"
            }
          ],
          "signature": "fkaeisfIHJI9878076LIGHJUhgfjyft876890756DSRESsertyrJVkhvg87678HGF32+1Vze97652hkgvwHGVF8756mq2SI2OLKhxmwTrqZFrx2YoVGPMnLOWjVdR98vrICUd5CLZwGojKBOYebuHpYbKZ/l1DyYJrihvqGlxcMOMmci+8R5lMictJ7o4ujtPILorT88q5NuOjf/mY/oVALqASB1/TMWKAJL76fVKjwXqWL47Uavfl5dGnv4hXq5FXzKRDG5RKp/ymKA6cLmB8pAjsG+P6GJGdyZUYkajo00fD48li5qKzCiw/kOJUC8kRXHN/TcTuRQ0PdcWWmhBQ9dfuBasx0m+vWNoeWBcQ4cOHNJrR7BrZ6gJjW/Z/ZVgabvBLRWV8u74T/VR/m1tJt64XSQHJELy8OxHrhM0rsFcx7mcsHDY0uL9GAwZscit7lgUrGNDJEEE44dVRTzpBkVCUcobP7Zzx8F4hVJiGo4P6cuMzNr7TtqeZ9RfJvo"
        }
      ]
    }
    

    See Also

    • Software License Agreement
    • Common Tasks
    • Release Notes
    • Getting Started
      • System Requirements
      • Dotnet Templates
      • Add actionETL Manually
      • Samples
      • Deploying Applications
      • Development Guidelines
    • Worker System
      • Configuration
        • AConfig Configuration Facility
      • Logging
    In This Article
    Back to top Copyright © 2021 Envobi Ltd