diff --git a/README.md b/README.md index 37af4b2..109f5ac 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,16 @@ -Тестовая обкатка работоспособности Lucee с БД -============================================== +# Nubes Lucee CRUD Demo -Упрощенный вариант без создания БД и таблиц - проверим только коннект +Демонстрационное приложение для облачной платформы Nubes, демонстрирующее интеграцию Lucee (Tomcat/CFML) и PostgreSQL. -*Проходим ряд этапов* +### Функционал +- Динамическая конфигурация DataSource через переменные окружения Terraform. +- Полный цикл CRUD (Create, Read, Update, Delete) для таблицы `nubes_test_table`. +- Автоматическая инициализация схемы данных при запуске приложения. -1) Разворачиваем PostgreSQL -2) Подключаемся к ней и делаем +### Развертывание +Приложение разворачивается через Terraform ресурс `nubes_lucee`. Все параметры подключения к базе данных передаются через `json_env` с префиксом `testds_`. -```sh -ALTER SYSTEM SET password_encryption = 'scram-sha-256'; -SELECT pg_reload_conf(); - -CREATE USER myuser WITH PASSWORD 'password12345'; -CREATE DATABASE mydatabase; -ALTER DATABASE mydatabase OWNER TO myuser; -ALTER DATABASE mydatabase SET search_path to mydatabase; -``` - -``` -3) Находим предварительно LUCEE где можно использовать -```sh -CommandBox> repl -CFSCRIPT-REPL: getInstance('PasswordManager@lucee-password-util').encryptDataSource('password12345') -``` -Получаем hash и далее используем в передаче CFM: -Пример CFM ниже -```sh -{ - "testds_class": "org.postgresql.Driver", - "testds_bundleName": "org.postgresql.jdbc", - "testds_bundleVersion": "42.6.0", - "testds_connectionString": "jdbc:postgresql://postgresql-cl2vzaytsev1.postgresql-cl2vzaytsev1.svc.k8s-2.ext.nubes.ru:5432/mydatabase", - "testds_username": "myuser", - "testds_password": "encrypted:6e97c7d3441f1b393be2e74a1dbc8e43f88a92be270de6f7405ffce85fd52b1e489643ae147ca352", - "testds_connectionLimit": "5", - "testds_liveTimeout": "15", - "testds_validate": "false" -} -``` +### Стек +- **App:** Lucee 5.4 +- **DB:** PostgreSQL +- **Infra:** Terraform, Kubernetes (Nubes Realm)