Панель настроек без программирования

    Привет,

    Это небольшой сервис, призванный решить проблему конфигурации чего угодно. Если точнее, конфигурации чего-либо подключённого к интернету, которую можно представить в виде достаточно ветвистого объекта, доставляемого в виде JSON.

    Проблема


    Программам нужно хранить и использовать разновидность данных, известные как «настройки», или «конфигурация». Что это за данные?

    • они не очень хорошо структурированы
    • их не очень много, часто не более сотни значений
    • их нужно давать редактировать («админский интерфейс»)
    • приложение должно быть в курсе изменений.


    Что мы можем для этого придумать, и почему оно не годится?


    • Реляционная база. Табличная структура малопригодна для россыпи несвязанных данных. Интерфейс отсутствует.
    • Хранить установки вместе с кодом. Структура может быть любая, но интерфейсом пользователя будет разговор с разработчиком.
    • Хранить установки в текстовом файле. Разновидность предыдущего подхода. Попробуйте научите нормального человека редактировать YAML.
    • Воспользоваться сторонним сервисом, вроде Google Data API. Будет работать, но оверхед будет ужасен, а скорость черепашья.


    Собственно, сервис.
    image


    Несложная логика работы:

    Регистрируемся, выбираем свободное имя для схемы (это называется «seed»). Имена общие для всех, так как они будут поддоменами. Наполняем схему содержимым в конструкторе форм:

    image

    Для каждого значения выбираем тип, имя поля, и то, что будет на экране в форме редактирования.

    Автоматически получаем одну ипостась (instance) этой схемы (каждая ипостась это «tree») под названием main. Можно сделать несколько, например, для тестов или среды разработки. Назначаем пароль для каждого дерева.

    Данные каждой ипостаси доступны человеку, для редактирования, по адресу https://<имя схемы>.config.ly
    • логин: имя ипостаси («main», если вы ничего не меняли)
    • пароль: тот, который вы задали в конфигурации.


    Так как создавать свою схему вам лень (мне бы было), а интерфейс посмотреть хочется, можно зайти на готовое:

    Данные также доступны на чтение бездушному боту через HTTPS GET api.config.ly с Basic Authentication:
    • юзернейм: имя схемы
    • пароль: API key, который был сгенерирован для дерева, и который можно посмотреть при редактировании схемы.


    И опять же, можно сразу попробовать:

    curl -k -u primer:yV7mkhNRs00tM2nTdKuEWV2a api.config.ly

    Итого


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

    Отзывы и конструктивная критика с благодарностью принимаются.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Каково первое впечатление?

    • 4.8%Джва года ждал такой сервис!15
    • 19.4%Любопытно, может пригодиться.20
    • 35.9%Я не доверяю свои данные абы кому.37
    • 2.9%Нужно больше функционала: API на запись, пользовательские стили и пр. (в комментариях)3
    • 0.9%Центр управления НЛО требует интерфейс к базе данных!1
    • 35.9%Реально, какая-то фигня.37
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 5

      0
      1. Правильно ли я понял, что по вашей логике, я доверяю работу своих сервисов вашему приложению. Т.е. упал ваш сервер, упали все приложения, если в архитектуру не встроено дублирование в локальную копию. (А если встроено, то зачем мне вы?..)
      2. Правильно ли я понимаю, что безопасность и настройки моего приложения находятся в полной власти ваших админов? И если кому-то из них намеренно или случайно придёт в голову «подправить» настройки, то он легко это сделает?
      3. Не думали ли вы о том, чтобы раздавать или продавать код системы?
        +1
        1. Правильно. Это внешний сервис, и если вы доверяете вашему хостеру, провайдеру баз, вообще кому угодно (Heroku, Mongolab, Firebase и т.д.), то подписываетесь на некий компромисс между вашим удоством и вашими рисками.

        2. Несомненно, точно так же, как и безопасность вашей почты на гмайле или яндексе, или безопасность вашего приложения в на сервер в дата-центре.

        3. Пока хотелось бы попытаться монетизировать усилия, не раздавая кода.
          0
          Идеально подходит для хакатонов, мэшапов и экспериментов, когда каждое движение вида «за пару часиков накидаю админку» становится лишним. Тут вот уже есть админка, из которой можно тянуть данные. Удобно. А полноценный коммерческий проект на этом лично я поднимать не стал бы.

          Другой юзкейс — использовать ее как визуальный редактор json, забирать оттуда json чистым текстом и копировать себе в проект. В некоторых случаях м.б. удобнее, чем текстовым редактором пользоваться.
          0
          Вообще, смысл внешних конфигов начинается в тот момент, когда у них появляется хорошая и качественная сегментация, то есть, когда по каким-то данным можно сделать так, чтобы у одних пользователей была одна конфигурация, а у других — другая. Как у вас с этим?

          Я мог бы вам порекомендовать еще вот такой вот сервис на посмотреть — www.leanplum.com/ — они помимо конфига предлагают еще и мобильные SDK, для легкого пользования оными, дефолтные настройки в случае отсутствия интернета и многое другое.
            0
            Можно назначить разным пользователям разные деревья, если пользователей не очень много.
            Спасибо за ссылку.

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое