Статьи

Интерфейс командной строки администратора Node.js для эспрессо логики

Espresso Logic представила новый инструмент командной строки администратора для создания и поддержки проекта и внутренних компонентов проекта для работающего сервера REST. В предыдущем блоге мы говорили об инструменте командной строки для выполнения REST-вызовов к ресурсам на работающем сервере Espresso. Понимание административной командной строки требует определенных знаний о базовой организации метамодели (схемы) Espresso Logic, используемой внутри для управления REST API, соединениями с базами данных, ресурсами, безопасностью, бизнес-логикой и определениями приложений. После запуска устройства, установки или облачного сервера вы можете использовать основанную на браузере Espresso logic Design Studio или интерфейс командной строки Node.js, найденный на GitHub., Сервер организован в проекты, и каждый проект имеет набор свойств и служб, используемых для создания, защиты и обслуживания конечных точек REST.

Монтаж

    $npm install espresso-admin-cli

Вход в систему

После того, как вы установили командную строку администратора, вы начинаете с учетных данных, предоставленных Espresso Logic.

    espressoadmin login <url> -u <user-name> -p <password> [-a <alias>]

схема

Интерфейс командной строки и студия веб-дизайна предоставляют интерфейсы уровня обслуживания для перечисления, создания, обновления и удаления различных элементов проекта. Эти элементы показаны ниже в схеме и включают поставщиков аутентификации, пользователей и роли, ресурсы и бизнес-правила.

ProjectSchema

Службы командной строки

Службы командной строки предоставляют способ добавлять, изменять, перечислять или удалять различные компоненты вашего REST-сервера Espresso Logic.

$ espressoadmin --help

  Usage: espressoadmin [options] [command]

  Commands:

    login [options] <url>                     Login to an Espresso Logic server
    logout [options] [url]                    Logout from the current server, or a specific server
    use <alias>                               Use the specified server by default
    status                                    Show the current server, and any defined server aliases
    
    database [options] <list|create|update|delete>   Administer databases within a project.
    resource [options] <list>                        Administer resources within a project.
    rule [options] <list|create|delete>              Administer rules within a project.
    authprovider <list>                              Administer authentication providers for an account.

  Options:

    -h, --help     output usage information
    -V, --version  output the version number

проект

Сервер может иметь один или несколько проектов. Проект — это контейнер, который используется для всех остальных сервисов. Все содержимое проекта может быть импортировано или экспортировано в файл JSON.

espressoadmin project create --project_name <name> --url_name <url_name> [--status <A|I>] 
    [--comments <comments>] [--verbose]

Соединения с базой данных

Espresso Logic поддерживает множество типов баз данных. Соединение с базой данных используется для чтения информации о схеме и создания конечных точек RESTful для таблиц, представлений и хранимых процедур (если поддерживается базой данных). Смотрите страницу GitHub для получения подробной информации о поддерживаемых типах баз данных. Каждый проект имеет основную базу данных (вы также можете интегрировать базы данных MongoDB и использовать JavaScript для интеграции других источников данных). Вы можете определить несколько активных баз данных, каждая со своим собственным префиксом. Неактивные базы данных могут иметь префиксные значения, которые не являются уникальными. Когда неактивная база данных становится  активнойлюбая активная база данных с таким же префиксом становится неактивной. Несколько записей с одинаковым префиксом могут использоваться для тестирования, разработки, производственных сред. Для получения дополнительной информации о поддержке нескольких баз данных и отношений смотрите страницы онлайн- документации .

espressoadmin database create --name <name> --user_name <db-user-name> --password <db-password>
    --url <db-url> --dbasetype <type>
    [--prefix <prefix>] [--catalog_name <catalog>] [--schema_name <schema>] [--port_num <port>]
    [--comments <comments>]

Правила и события

Бизнес-правила автоматически вызываются, когда на сервер REST отправляется POST / PUT или DELETE. Механизм реактивной логики серверов будет определять, какие выводы, проверки и события следует обрабатывать в многотабличной транзакции.

ProjectRuleSchema

Эспрессо Логика Мета Схема

Правило командной строки

Интерфейс командной строки позволяет просматривать, создавать и управлять различными типами правил. Правила (иначе говоря, Live Logic) могут применяться на уровне атрибутов столбцов (называемых деривациями для выполнения сумм, подсчета, формулы, репликации) и проверок объектов объектов таблицы. События можно добавлять с помощью JavaScript и применять в разных точках транзакции бизнес-логики.

Usage: rule [options] <list|create|delete>

  Options:

    -h, --help                    output usage information
    --ruletype [type]             The type of the rule, can be: sum,formula,validation,parentcopy
    --entity_name [prefix:table]  The table, qualified with a prefix, for the rule
    --attribute_name [name]       The name of the attribute whose value is computed by the rule. 
                                  Required for sum, count, formula, minimum, maximum.
    --role_name [name]            The role name - required for sum, count, minimum, maximum
    --clause [clause]             The clause - required for sum, count, minimum, maximum
    --child_attribute [name]      The name of the child attribute - required for sum, minimum, maximum
    --parent_attribute [name]     The name of the parent attribute - required for parent copy
    --expression [code]           The code for the rule - required for formula,events and validations
    --error_message [message]     The error mesaage for the rule - required for validations
    --rule_name [name]            Optional: a name for the rule. If not specified, a name will be generated.
    --comments [comments]         Optional: a comment for the rule
    --active [true|false]         Optional: whether the rule should be active, true by default
    --project_ident               The ident of a project, if other than the current project
    --ident [ident]               For delete, the ident of the rule to delete

Поставщики аутентификации

Все взаимодействие с сервером Espresso Logic осуществляется через вызовы API с использованием JSON / REST. Поставщик аутентификации — это способ общения с сервером Espresso Logic. В результате проверки подлинности пользователя создается новый ключ API, который передается на все последующие запросы и связывается с набором ролей безопасности, которые определяют, на что авторизован ключ API. Подробнее о добавлении пользовательских служб аутентификации, таких как Active Directory, LDAP, REST, SQL или Stormpath, см. На страницах документации .

espressoadmin authprovider list

Выйти

Используйте команду выхода из системы, чтобы завершить рабочий сеанс.

espressoadmin logout [-a <alias>]

Резюме

Espresso Logic предоставляет Node.js SDK для разработчиков для работы с конечными точками REST, а также интерфейсный модуль командной строки Node.JS в GitHub . Эта ранняя версия командной строки администратора Node.JS не имеет всех функций и возможностей, доступных в студии веб-дизайна. Сама студия дизайна основана на вызовах REST API к мета-схеме. Все сервисы и функции могут быть вызваны напрямую из сервисов REST API.