Compare commits

..

95 Commits

Author SHA1 Message Date
Александр Анисин 4524124d0a Финансы 2026-04-29 14:16:01 +03:00
Aleksandr Anisin 87193038ae Обновление тестовой сборки 2026-04-20 16:00:41 +03:00
Aleksandr Anisin eab7a61ed1 Исправление ошибки сборки 2026-04-20 14:24:55 +03:00
Анисин Александр Александрович f4a212e3e2 Merge branch 'feature/billing' into 'test'
Биллинг

See merge request common/lk-beecloud/beecloud-docs!14
2026-04-20 10:15:28 +00:00
Анисин Александр Александрович 7dcab6a39b Merge branch 'test' into 'feature/billing'
# Conflicts:
#   src/.vitepress/config.mts
2026-04-20 10:15:05 +00:00
Анисин Александр Александрович f623476dff Merge branch 'feature/ngfw-f' into 'test'
NGFW-F

See merge request common/lk-beecloud/beecloud-docs!13
2026-04-20 10:14:10 +00:00
Анисин Александр Александрович dc9817d250 Merge branch 'test' into 'feature/ngfw-f'
# Conflicts:
#   src/.vitepress/config.mts
#   src/security/index.md
2026-04-20 10:13:53 +00:00
Анисин Александр Александрович 47a6d4d1ec Merge branch 'feature/ngfw-pro' into 'test'
NGFW Pro

See merge request common/lk-beecloud/beecloud-docs!12
2026-04-20 10:12:40 +00:00
Анисин Александр Александрович 45ec9a5ab3 Merge branch 'test' into 'feature/ngfw-pro'
# Conflicts:
#   src/.vitepress/config.mts
#   src/index.md
#   src/security/Cloud-MDM/MDM-index.md
#   src/security/Cloud-SA/SA-index.md
#   src/security/Cloud-VS/VS-index.md
#   src/security/index.md
2026-04-20 10:12:08 +00:00
Aleksandr Anisin 3c402cfa73 NGFW 2026-04-20 12:54:33 +03:00
Aleksandr Anisin ea42afac3e NGFW-Pro 2026-04-08 15:57:35 +03:00
Aleksandr Anisin f0c94a6587 NGFW-F 2026-04-08 15:54:59 +03:00
Анисин Александр Александрович d921225b30 Merge branch 'feature/security-part-prod' into 'main'
Feature/security part prod

See merge request common/lk-beecloud/beecloud-docs!11
2026-04-08 06:57:04 +00:00
Aleksandr Anisin 26e65e2a72 Заглушка 2026-04-08 09:55:04 +03:00
Aleksandr Anisin b01b38ed5a Правки в разделах по безопасности 2026-04-08 09:49:45 +03:00
Aleksandr Anisin dbaf23e144 Разделы по безопасности 2026-04-08 09:36:45 +03:00
Aleksandr Anisin 6511368389 Разделы по безопасности 2026-04-08 09:35:08 +03:00
Aleksandr Anisin 3808af1e34 Разделы по безопасности 2026-04-08 09:24:37 +03:00
Левченко Людмила Алексеевна fc7486d182 Merge branch 'feature/PaaS-PostgreSQL-to-main' into 'main'
feature/PaaS-PostgreSQL-to-main

See merge request common/lk-beecloud/beecloud-docs!10
2026-04-01 18:00:48 +03:00
Левченко Людмила Алексеевна ec84ec85e1 feature/PaaS-PostgreSQL-to-main 2026-04-01 18:00:48 +03:00
Левченко Людмила Алексеевна a0f86509fa Merge branch 'feature/PaaS-PostgreSQL' into 'test'
feature/PaaS-PostgreSQL правки

See merge request common/lk-beecloud/beecloud-docs!9
2026-04-01 17:40:12 +03:00
Левченко Людмила Алексеевна 2c782be4da правки 2026-04-01 17:33:02 +03:00
Левченко Людмила Алексеевна 9fa086bffe Merge branch 'feature/PaaS-PostgreSQL' into 'test'
PaaS-PostgreSQL правки 2.0

See merge request common/lk-beecloud/beecloud-docs!8
2026-04-01 17:27:01 +03:00
Левченко Людмила Алексеевна fcc8b68475 правки 2.0 2026-04-01 17:20:40 +03:00
Левченко Людмила Алексеевна 52edef245f Merge branch 'feature/PaaS-PostgreSQL-to-main' into 'main'
feature/PaaS-PostgreSQL-to-main

See merge request common/lk-beecloud/beecloud-docs!7
2026-04-01 15:10:51 +03:00
Левченко Людмила Алексеевна a47571d8af feature/PaaS-PostgreSQL-to-main 2026-04-01 15:10:51 +03:00
Левченко Людмила Алексеевна 01938a5440 Merge branch 'feature/PaaS-PostgreSQL' into 'test'
feature/PaaS-PostgreSQL правки

See merge request common/lk-beecloud/beecloud-docs!6
2026-04-01 14:44:42 +03:00
Левченко Людмила Алексеевна 943c6432c9 правки 2026-04-01 14:40:55 +03:00
Левченко Людмила Алексеевна 0014452a20 Merge branch 'feature/PaaS-PostgreSQL' into 'test'
Feature/paas-postgresql

See merge request common/lk-beecloud/beecloud-docs!5
2026-04-01 12:30:12 +03:00
Левченко Людмила Алексеевна 764bedf550 правки 2026-04-01 12:24:03 +03:00
Левченко Людмила Алексеевна a4ba63de59 правки 2026-04-01 12:21:50 +03:00
Левченко Людмила Алексеевна ea4e00ef1b правки 2026-04-01 12:19:50 +03:00
Левченко Людмила Алексеевна e6ed9f0af5 Merge branch 'feature/PaaS-PostgreSQL' into 'test'
Feature/paas postgresql 2.0

See merge request common/lk-beecloud/beecloud-docs!4
2026-03-31 12:15:58 +03:00
Левченко Людмила Алексеевна 8e1da810a6 Мелкие правки 2026-03-31 11:08:54 +03:00
Левченко Людмила Алексеевна 518b0377f4 Мелкие правки 2026-03-31 10:54:44 +03:00
Левченко Людмила Алексеевна fd818ca3c4 Merge branch 'feature/PaaS-PostgreSQL' into 'test'
Feature/PaaS-Postgre-SQL

See merge request common/lk-beecloud/beecloud-docs!3
2026-03-30 11:24:52 +03:00
Левченко Людмила Алексеевна 4adfe0e44a удалены старые файлы 2026-03-27 17:12:38 +03:00
Yana Ishkhanova ae14925dcc мелкие правки 2026-03-27 16:16:12 +03:00
Yana Ishkhanova c33b6b8666 Merge branch 'feature/PaaS-PostgreSQL' of ssh://git.vimpelcom.ru:1122/common/lk-beecloud/beecloud-docs into feature/PaaS-PostgreSQL 2026-03-27 16:12:17 +03:00
Yana Ishkhanova 5a0c94a187 Внесение мелких правок 2026-03-27 16:09:02 +03:00
Левченко Людмила Алексеевна d8165f9442 внесение корректировок 2026-03-27 12:27:45 +03:00
Левченко Людмила Алексеевна 45c6e6dd0d Merge branch 'feature/PaaS-PostgreSQL' into 'test'
Документация для системы PaaS #BEECL-6775

See merge request common/lk-beecloud/beecloud-docs!1
2026-03-26 16:14:22 +03:00
Aleksandr Anisin 76ce7d5ecc Ссылки 2026-03-24 13:10:09 +03:00
Aleksandr Anisin cbca68dfbf Ссылки 2026-03-24 13:02:15 +03:00
Aleksandr Anisin 76ad140803 Merge remote-tracking branch 'origin/fix/security-naming' into test 2026-03-20 15:17:27 +03:00
Aleksandr Anisin 3618010241 Merge remote-tracking branch 'origin/feature/security' into test 2026-03-20 12:17:21 +03:00
Yana Ishkhanova 1bb42c4731 мелкие правки 2026-03-20 12:16:18 +03:00
Левченко Людмила Алексеевна 1b96efc894 Мелкие правки 2026-03-18 16:12:49 +03:00
Yana Ishkhanova e80065f53a Перенесла IPSEC в папку paas, тк на данную статью будут ссылаться не только по вопросам касаемо PostgreSQL, но и по Apache Kafka 2026-03-18 15:03:47 +03:00
Yana Ishkhanova 9a665dc7ab Вынесение блока IPSEC из cluster_parametr в отдельную статью, внесение правок 2026-03-18 14:57:51 +03:00
Yana Ishkhanova 2a4796a454 Перенесла файлы grafana и pgadmin в папку с документацией PostgreSQL 2026-03-18 12:53:51 +03:00
Левченко Людмила Алексеевна 983d12aa4c удалена дублирующая директория 2026-03-16 17:41:12 +03:00
dmvstrelnikov 2f97666bb3 chore: update build-npm.yml 2026-03-16 17:25:36 +03:00
dmvstrelnikov 8ea9b9cfba chore: update build-npm.yml 2026-03-16 17:24:58 +03:00
Левченко Людмила Алексеевна d0c4da711a Мелкие правки 2026-03-13 17:30:38 +03:00
Левченко Людмила Алексеевна 319ee317ac grafana и pgadmin 2026-03-13 15:45:08 +03:00
Yana Ishkhanova e1b0c5d60e Добавление двух новых документов, метрики + pgadmin 2026-03-13 11:05:58 +03:00
Yana Ishkhanova 86bc4b88a3 Merge branch 'feature/PaaS-PostgreSQL' of ssh://git.vimpelcom.ru:1122/common/lk-beecloud/beecloud-docs into feature/PaaS-PostgreSQL 2026-03-12 17:19:21 +03:00
Yana Ishkhanova 97bfe3d5b4 Добавлены инструкции по работе с PgAdmin, а также описание метрик 2026-03-12 15:16:55 +03:00
Левченко Людмила Алексеевна 2c30db4807 Сервис PostgreSQL 2026-03-11 16:17:54 +03:00
Aleksandr Anisin e1a91fd276 Боковое меню 2026-03-09 19:07:11 +03:00
Aleksandr Anisin 143517e0e9 Дополнения от владельца сервиса 2026-03-09 18:50:47 +03:00
Aleksandr Anisin c0f94d4ea7 Обновление названий сервисов 2026-03-09 18:14:00 +03:00
Левченко Людмила Алексеевна fa02fa99ff Корректировки сервиса VS 2026-03-05 18:04:08 +03:00
Левченко Людмила Алексеевна 694b9d4d79 Корректировка сервиса NGFW 2026-03-04 12:36:29 +03:00
Левченко Людмила Алексеевна 5028651702 Внесение правок 2026-03-04 12:01:45 +03:00
Левченко Людмила Алексеевна b9a19ca0af мелкие правки 2026-03-04 10:59:23 +03:00
Aleksandr Anisin d2e6a825fe Merge branch 'feature/security' of ssh://git.vimpelcom.ru:1122/common/vega/beecloud-docs into feature/security 2026-03-04 08:59:25 +03:00
Aleksandr Anisin 17253a29fb SA 2026-03-04 08:59:18 +03:00
Левченко Людмила Алексеевна d9ae9815c4 Внесение правов 2026-03-03 18:26:18 +03:00
Левченко Людмила Алексеевна d2b6e9fe70 PostgreSQL 2026-03-03 12:13:33 +03:00
Aleksandr Anisin 0825eea352 MDM 2026-03-03 11:21:19 +03:00
Левченко Людмила Алексеевна 36bcf449c1 Сервис Cloud NGFW 2026-02-26 17:55:34 +03:00
Левченко Людмила Алексеевна 7e5630cca3 Мелкие правки 2026-02-25 11:37:13 +03:00
Левченко Людмила Алексеевна e1ba316949 Мелкие правки 2026-02-25 11:34:03 +03:00
Левченко Людмила Алексеевна 3e530f2eb9 Мелкие правки 2026-02-25 11:31:15 +03:00
Левченко Людмила Алексеевна 3afc130ea9 Мелкие правки 2026-02-25 11:23:10 +03:00
Левченко Людмила Алексеевна 436d8dff17 Сервис MDM 2026-02-19 17:54:25 +03:00
Левченко Людмила Алексеевна 53edfe7a58 мелкие правки 2026-02-12 16:49:20 +03:00
Левченко Людмила Алексеевна ea20a8e8bf Сервис VS 2026-02-12 16:33:40 +03:00
Левченко Людмила Алексеевна 68c9e4167e Структурирование раздела 2026-02-06 17:25:05 +03:00
Левченко Людмила Алексеевна 5fdc3d3c68 Сервис SA 2026-02-05 17:30:52 +03:00
Речкина Елена Валерьевна adcd2d54d3 Update file package.json 2026-01-27 09:40:21 +00:00
Речкина Елена Валерьевна df88416247 Merge branch 'feature/VEGA-6262-add-static-copy-plugin' into 'main'
VEGA-6267: добавление автоматического обновления шрифтов дизайн-системы и отключение темной темы

See merge request common/vega/beecloud-docs!78
2026-01-20 11:28:37 +00:00
Захаров Дмитрий Анатольевич b948e5a433 VEGA-6267: добавление автоматического обновления шрифтов дизайн-системы и отключение темной темы 2026-01-20 11:28:37 +00:00
Речкина Елена Валерьевна 451ecaa68d Merge branch 'main' into 'feature/billing'
# Conflicts:
#   src/.vitepress/config.mts
2026-01-13 06:49:35 +00:00
Elena Rechkina c99ffa082d Навигация 2025-12-12 16:01:44 +06:00
Речкина Елена Валерьевна afd228d696 Merge branch 'main' into 'feature/billing'
# Conflicts:
#   src/.vitepress/config.mts
#   src/billing/about.md
#   src/billing/usage-analytics.md
#   src/index.md
2025-12-12 09:59:32 +00:00
Elena Rechkina bb73b0cf68 Форматирование 2025-12-12 15:57:06 +06:00
Левченко Людмила Алексеевна 825daec2e7 мелкие правки 2025-12-11 17:12:45 +03:00
Aleksandr Anisin 4a82f2d34d Правка по Биллингу 2025-10-09 20:28:23 +03:00
Aleksandr Anisin a0bd478abe Small edits 2025-10-09 19:53:08 +03:00
Aleksandr Anisin 23bf227c36 Обновленное описание Биллинга 2025-10-09 13:58:04 +03:00
Aleksandr Anisin 089f9d1e98 Удалил временный файл 2025-09-25 09:09:43 +03:00
Aleksandr Anisin 9a38f22e65 Биллинг 2025-09-25 09:07:46 +03:00
224 changed files with 4697 additions and 2386 deletions
Submodule
+1
Submodule beecloud-docs added at df88416247
+1589 -1150
View File
File diff suppressed because it is too large Load Diff
+12 -11
View File
@@ -1,6 +1,6 @@
{
"name": "docs",
"version": "0.6.5-main",
"version": "0.6.5-billing",
"description": "Beeline Cloud docs",
"main": "index.js",
"scripts": {
@@ -15,16 +15,17 @@
},
"license": "MIT",
"dependencies": {
"@beeline/design-tokens": "1.31.0",
"vue": "3.4.7"
"@beeline/design-tokens": "^1.31.6",
"vue": "^3.5.0"
},
"devDependencies": {
"@docsearch/css": "3.3.0",
"@types/node": "20.10.7",
"@vitejs/plugin-vue": "4.3.4",
"sass": "1.69.7",
"typescript": "^5.8.3",
"vitepress": "1.0.0-rc.40",
"vitepress-plugin-tabs": "0.5.0"
"@docsearch/css": "4.1.0",
"@types/node": "^22.0.0",
"@vitejs/plugin-vue": "^6.0.3",
"sass": "^1.70.0",
"typescript": "^5.9.3",
"vite-plugin-static-copy": "^3.1.4",
"vitepress": "^1.6.4",
"vitepress-plugin-tabs": "^0.7.3"
}
}
}
+167 -84
View File
@@ -1,6 +1,7 @@
import { defineConfig } from 'vitepress'
import { tabsMarkdownPlugin } from 'vitepress-plugin-tabs'
import { overrideComponents } from './override-components'
import { fileURLToPath, URL } from 'node:url'
const gitlab = `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
@@ -54,7 +55,13 @@ export default defineConfig({
},
vite: {
resolve: {
alias: overrideComponents(),
alias: [
...overrideComponents(),
{
find: '@',
replacement: fileURLToPath(new URL('./theme', import.meta.url))
},
],
}
},
locales: {
@@ -80,8 +87,14 @@ export default defineConfig({
buttonAriaLabel: 'Поиск'
},
modal: {
noResultsText: 'По вашему запросу ничего не найдено',
noResultsText: 'Не удалось загрузить данные',
resetButtonTitle: 'Сбросить',
displayDetails: 'Показать расширенный список',
footer: {
selectText: 'Выбрать',
closeText: 'Закрыть',
navigateText: 'Перейти',
}
}
}
}
@@ -124,7 +137,130 @@ export default defineConfig({
],
},
],
'/start/': [
'/security/': [
{
text: 'Сервисы информационной безопасности в Beeline Cloud', link: '/security/index.md',
},
{
text: 'Cloud Security Awareness (SA)', link: '/security/Cloud-SA/SA-index.md',
collapsed: true,
items: [
{
text: 'Состав сервиса SA', link: '/security/Cloud-SA/compond-index.md',
collapsed: true,
items: [
{ text: 'Обзор сервиса', link: '/security/Cloud-SA/compond-SA/about.md' },
{ text: 'Состав сервиса', link: '/security/Cloud-SA/compond-SA/compond-SA.md' },
{ text: 'Настройки сервиса по умолчанию', link: '/security/Cloud-SA/compond-SA/default-service.md' },
{ text: 'Почтовый ретранслятор (SMTP relay)', link: '/security/Cloud-SA/compond-SA/mail-relay.md' },
{ text: 'Мониторинг работоспособности платформы', link: '/security/Cloud-SA/compond-SA/monitoring.md' },
{ text: 'Модули платформы', link: '/security/Cloud-SA/compond-SA/platform-modules.md' },
{ text: 'Ограничения платформы', link: '/security/Cloud-SA/compond-SA/restrictions.md' },
{ text: 'Отказоустойчивость сервиса', link: '/security/Cloud-SA/compond-SA/stability.md' },
{ text: 'Шаблоны почтовых сообщений и веб-форм', link: '/security/Cloud-SA/compond-SA/templates.md' },
{ text: 'Дополнительные работы ', link: '/security/Cloud-SA/compond-SA/work.md' },
]
},
{ text: 'Качественные характеристики сервиса', link: '/security/Cloud-SA/characteristics.md' },
{ text: 'Инструкции для начала работы с сревисом', link: '/security/Cloud-SA/instructions.md' },
{ text: 'Порядок платежей', link: '/security/Cloud-SA/payment-procedure.md' },
{ text: 'Сроки и условия предоставления сервиса', link: '/security/Cloud-SA/provision.md' },
]
},
{
text: 'Cloud Vulnerability Scanner (VS)', link: '/security/Cloud-VS/VS-index.md',
collapsed: true,
items: [
{ text: 'Обзор сервиса VS', link: '/security/Cloud-VS/about.md'},
{ text: 'Варианты предоставления сервиса', link: '/security/Cloud-VS/provision-service.md' },
{ text: 'Мониторинг работоспособности и отказоустойчивость сервиса', link: '/security/Cloud-VS/monitoring.md' },
{ text: 'Состав работ', link: '/security/Cloud-VS/scope-work.md' },
{ text: 'Дополнительные работы', link: '/security/Cloud-VS/work.md' },
{ text: 'Зоны ответсвенности', link: '/security/Cloud-VS/areas-responsibility.md' },
{ text: 'Качественные характеристики сервиса', link: '/security/Cloud-VS/characteristics.md' },
{ text: 'Сроки предоставления сервиса', link: '/security/Cloud-VS/provision.md' },
{ text: 'Порядок платежей', link: '/security/Cloud-VS/payment-procedure.md' },
]
},
{
text: 'Cloud Mobile Device Management (MDM)', link: '/security/Cloud-MDM/MDM-index.md',
collapsed: true,
items: [
{ text: 'Обзор сервиса', link: '/security/Cloud-MDM/about.md' },
{
text: 'Описание сервиса MDM', link: '/security/Cloud-MDM/discription-index.md',
collapsed: true,
items: [
{ text: 'Состав сервиса', link: '/security/Cloud-MDM/description/compound.md' },
{ text: 'Архитектура сервиса', link: '/security/Cloud-MDM/description/architecture.md' },
{ text: 'Зоны ответственности', link: '/security/Cloud-MDM/description/areas-responsibility.md' },
{ text: 'Мониторинг работоспособности и отказоустойчивость сервиса', link: '/security/Cloud-MDM/description/monitoring.md' },
{ text: 'Дополнительные работы', link: '/security/Cloud-MDM/description/work.md' },
]
},
{ text: 'Качественные характеристики сервиса', link: '/security/Cloud-MDM/characteristics.md' },
{ text: 'Сроки и условия предоставления сервиса', link: '/security/Cloud-MDM/provision.md' },
{ text: 'Порядок платежей', link: '/security/Cloud-MDM/payments.md' },
{
text: 'Инструкиця', link: '/security/Cloud-MDM/instructions-index.md',
collapsed: true,
items: [
{ text: 'Инструкция', link: '/security/Cloud-MDM/instructions/instructions.md' },
{ text: 'Активация учетной записи', link: '/security/Cloud-MDM/instructions/activation.md' },
{ text: 'Режим Device Owner', link: '/security/Cloud-MDM/instructions/device-owner.md' },
]
},
],
},
{
text: 'Cloud NGFW', link: '/security/Cloud-NGFW/NGFW-index.md',
collapsed: true,
items: [
{ text: 'Обзор сервиса', link: '/security/Cloud-NGFW/about.md'},
{ text: 'Основные возможности', link: '/security/Cloud-NGFW/possibilities.md' },
{ text: 'Спецификация сервиса', link: '/security/Cloud-NGFW/specification.md' },
{ text: 'Состав сервиса', link: '/security/Cloud-NGFW/compound.md' },
{ text: 'Сроки и условия предоставления сервиса. Зоны ответственности', link: '/security/Cloud-NGFW/provision.md' },
{ text: 'Структура платежей', link: '/security/Cloud-NGFW/payment-structure.md' },
]
},
{
text: 'Cloud NGFW F', link: '/security/Cloud-NGFW-F/NGFW-F-index.md',
collapsed: true,
items: [
{ text: 'Обзор сервиса', link: '/security/Cloud-NGFW-F/about.md'},
{ text: 'Порядок подключения сервиса', link: '/security/Cloud-NGFW-F/connection.md' },
{ text: 'Варианты предоставления', link: '/security/Cloud-NGFW-F/delivery-options.md' },
{ text: 'Состав сервиса', link: '/security/Cloud-NGFW-F/compound.md' },
{ text: 'Функциональные возможности', link: '/security/Cloud-NGFW-F/functional-capabilities.md' },
{ text: 'Структура платежей', link: '/security/Cloud-NGFW-F/payment-structure.md' },
{ text: 'Тестирование сервиса', link: '/security/Cloud-NGFW-F/testing.md' },
]
},
{
text: 'Cloud NGFW Pro', link: '/security/Cloud-NGFW-Pro/NGFW-Pro-index.md',
collapsed: true,
items: [
{ text: 'Обзор сервиса', link: '/security/Cloud-NGFW-Pro/about.md'},
{ text: 'Основные возможности', link: '/security/Cloud-NGFW-Pro/possibilities.md' },
{ text: 'Спецификация сервиса', link: '/security/Cloud-NGFW-Pro/specification.md' },
{ text: 'Состав сервиса', link: '/security/Cloud-NGFW-Pro/compound.md' },
{ text: 'Сроки и условия предоставления сервиса', link: '/security/Cloud-NGFW-Pro/provision.md' },
{ text: 'Демодоступ к сервису', link: '/security/Cloud-NGFW-Pro/demo-access.md' },
{ text: 'Структура платежей', link: '/security/Cloud-NGFW-Pro/payment-structure.md' },
]
},
],
'/PaaS/': [
{ text: 'PostgreSQL', link: '/PaaS/PostgreSQL/PostgreSQL-index.md' },
{ text: 'Обзор сервиса', link: '/PaaS/PostgreSQL/about.md' },
{ text: 'Параметры кластера', link: '/PaaS/PostgreSQL/cluster-parameter.md' },
{ text: 'Подключение', link: '/PaaS/PostgreSQL/connection.md' },
{ text: 'Grafana', link: '/PaaS/PostgreSQL/grafana.md' },
{ text: 'pgAdmin', link: '/PaaS/PostgreSQL/pgadmin.md' },
{ text: 'Возможности пользователя', link: '/PaaS/PostgreSQL/user-capabilities.md' },
],
'/start/': [
{
text: 'Начало работы в Beeline Cloud', link: '/start/index.md',
},
@@ -132,9 +268,18 @@ export default defineConfig({
{text: 'Бесплатный период', link: '/start/trial.md'},
{text: 'Платное использование', link: '/start/organization.md'},
],
// '/billing/': [
// ],
'/finance/': [
{ text: 'Финансы', link: '/finance/about.md' },
{ text: 'Счета', link: '/finance/accounts.md' },
{ text: 'Финансовый мониторинг', link: '/finance/financial-monitoring.md' },
{ text: 'Аналитика потребления', link: '/finance/usage-analytics.md' },
{ text: 'Анализ затрат', link: '/finance/cost-analysis.md' },
{ text: 'Бюджеты и уведомления', link: '/finance/budgets.md' },
{ text: 'Прогнозирование', link: '/finance/forecasting.md' },
{ text: 'Рекомендации', link: '/finance/recommendations.md' },
{ text: 'Квоты и лимиты', link: '/finance/quotas.md' },
{ text: 'Теги', link: '/finance/tags.md' },
],
'/backups/': [
{
text: 'Резервное копирование', link: '/backups/index.md',
@@ -160,9 +305,8 @@ export default defineConfig({
text: 'Обзор сервиса', link: '/vdc/vdc-overview.md',
collapsed: true,
items: [
{ text: 'О сервисе', link: '/vdc/vdc-about.md' },
{ text: 'Техническое описание', link: '/vdc/vdc-tech.md' },
{ text: 'Квоты и лимиты', link: '/vdc/vdc-quatos.md' },
{ text: 'Техническое описание', link: '/vdc/vdc-tech.md' },
{ text: 'Квоты и лимиты', link: '/vdc/vdc-quatos.md' },
]
},
{
@@ -191,13 +335,15 @@ export default defineConfig({
{text: 'VMware Tools', link: '/vdc/vdc-how-to/vm/vmware-tools.md'},
],
},
{ text: 'Диски', link: '/vdc/vdc-how-to/disks/disks-index.md',
{ text: 'Диски',
collapsed: true,
items: [
{text: 'Обзор', link: '/vdc/vdc-how-to/disks/about.md'},
{text: 'Создание диска', link: '/vdc/vdc-how-to/disks/create-disk.md'},
{text: 'Проверка состояния диска', link: '/vdc/vdc-how-to/disks/view-disk.md'},
{text: 'Управление выделенными дисками', link: '/vdc/vdc-how-to/disks/attach-disk.md'},
{text: 'Подключение выделенного диска к ВМ', link: '/vdc/vdc-how-to/disks/attach-disk.md'},
{text: 'Отключение выделенного диска от ВМ', link: '/vdc/vdc-how-to/disks/detach-disk.md'},
{text: 'Изменение владельца выделенного диска', link: '/vdc/vdc-how-to/disks/change-owner.md'},
{text: 'Изменение политики хранения дисков ВМ', link: '/vdc/vdc-how-to/disks/change-storage-policy-of-vm.md'},
{text: 'Редактирование параметров диска', link: '/vdc/vdc-how-to/disks/edit-disk.md'},
{text: 'Удаление диска', link: '/vdc/vdc-how-to/disks/delete-disk.md'},
@@ -211,18 +357,7 @@ export default defineConfig({
{text: 'Подключение ВМ в vApp к сети', link: '/vdc/vdc-how-to/networks/connect-vapp-to-network.md'},
{text: 'Подключение ВМ к интернету', link: '/vdc/vdc-how-to/networks/connect-vm-to-network.md'},
{text: 'Создание сети в организации и подключение к Edge Gateway', link: '/vdc/vdc-how-to/networks/create-network.md'},
{text: 'Подключение сети к Edge Gateway', link: '/vdc/vdc-how-to/networks/connect-to-edge-gateway.md'},
{text: 'Создание Pre-Shared Key', link: '/vdc/vdc-how-to/networks/create-psk.md'},
{ text: 'Настройка site-to-site подключения с помощью IPSec', link: '/vdc/vdc-how-to/networks/how-to-setup-ipsec-vpn.md',
collapsed: true,
items: [
{text: 'Настройка IPSec VPN', link: '/vdc/vdc-how-to/networks/ipsec/setup-ipsec-vpn.md'},
{text: 'Настройка ASAv', link: '/vdc/vdc-how-to/networks/ipsec/asav.md'},
{text: 'Настройка CSR 1000v', link: '/vdc/vdc-how-to/networks/ipsec/csr1000v.md'},
{text: 'Настройка Fortigate', link: '/vdc/vdc-how-to/networks/ipsec/fortigate.md'},
{text: 'Проверить сетевую связанность', link: '/vdc/vdc-how-to/networks/ipsec/check-vpn-status.md'},
],
},
{text: 'Подключение сети к Edge Gateway', link: '/vdc/vdc-how-to/networks/isolated-to-routed.md'},
],
},
{ text: 'Пользователи и роли', link: '/vdc/vdc-how-to/users/users-index.md',
@@ -272,34 +407,9 @@ export default defineConfig({
{ text: 'Управление ВМ', link: '/compute/compute-how-to/compute-servers-manage.md' },
],
},
{ text: 'Диски', link: '/compute/compute-how-to/compute-disks/compute-disk-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-disks/compute-disk-about.md' },
{ text: 'Создание диска', link: '/compute/compute-how-to/compute-disks/compute-disk-create.md' },
{ text: 'Управление дисками', link: '/compute/compute-how-to/compute-disks/compute-disk-manage.md' },
{ text: 'Удаление диска', link: '/compute/compute-how-to/compute-disks/compute-disk-del.md' },
]
},
{ text: 'IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-ip/compute-ip-about.md' },
{ text: 'Просмотр IP-адресов', link: '/compute/compute-how-to/compute-ip/compute-ip-view.md' },
{ text: 'Создание IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-create.md' },
{ text: 'Управление IP-адресами', link: '/compute/compute-how-to/compute-ip/compute-ip-manager.md' },
{ text: 'Удаление IP-адреса', link: '/compute/compute-how-to/compute-ip/compute-ip-del.md' },
]
},
{ text: 'Группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-index.md',
collapsed: true,
items: [
{ text: 'Обзор', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-about.md'},
{ text: 'Создание группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-create.md'},
{ text: 'Управление группами размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-manager.md' },
{ text: 'Удаление группы размещения', link: '/compute/compute-how-to/compute-placement-groups/compute-placement-groups-del.md' },
]
},
{ text: 'Диски', link: '/compute/compute-how-to/compute-disks.md' },
{ text: 'IP-адреса', link: '/compute/compute-how-to/compute-ip.md' },
{ text: 'Группы размещения', link: '/compute/compute-how-to/compute-affinity.md' },
{ text: 'Сети', link: '/compute/compute-how-to/compute-network/compute-network-index.md',
collapsed: true,
items: [
@@ -313,39 +423,12 @@ export default defineConfig({
text: 'Администрирование', link: '/admin/index.md',
},
{text: 'Управление ключевыми парами', link: '/admin/ssh.md'},
],
'/vdi/': [
{
text: 'Виртуальные рабочие столы', link: '/vdi/index.md',
},
{
text: 'Обзор сервиса', link: '/vdi/vdi-overview.md',
collapsed: true,
items: [
{ text: 'О сервисе', link: '/vdi/vdi-about.md' },
{ text: 'Техническое описание', link: '/vdi/vdi-tech.md' },
{ text: 'Квоты и лимиты', link: '/vdi/vdi-quatos.md' },
{ text: 'Тарификация', link: '/vdi/vdi-tarif.md' },
]
},
{
text: 'Заказ виртуальных рабочих столов', link: '/vdi/vdi-how-to/vdi-create.md'
},
{
text: 'Настройка сервиса', link: '/vdi/vdi-how-to/vdi-nastroika.md',
collapsed: true,
items: [
{ text: 'Настройка интеграции с Active Directory', link: '/vdi/vdi-how-to/vdi-connect-to-ad.md' },
{ text: 'Настройка сети', link: '/vdi/vdi-how-to/vdi-interconnect.md' },
]
},
// {
// text: 'Gold-образ', link: '/vdi/vdi-how-to/vdi-gold.md'
// },
{
text: 'Подключение к виртуальному рабочему месту', link: '/vdi/vdi-how-to/vdi-connect.md'
},
],
],
'/monitoring/': [
{
text: 'Мониторинг', link: '/monitoring/about.md',
},
],
},
},
}
@@ -76,7 +76,7 @@ const pageName = computed(() =>
</template>
<style scoped lang="scss">
@use 'src/assets/scss/app/helpers/media';
@use '@/scss/helpers/media';
.VPDoc {
padding: 32px 24px 96px;
@@ -1,6 +1,6 @@
@use '@beeline/design-tokens/scss/tokens/components/navigationDrawer';
@use '@beeline/design-tokens/scss/tokens/themes/theme-variables' as theme;
@use 'src/assets/scss/app/helpers/media';
@use '@/scss/helpers/media';
.VPSidebar {
--vp-sidebar-bg-color: var(--vp-c-bg);
@@ -1,3 +1,8 @@
@use '@beeline/design-tokens/scss/font-face';
@use "@beeline/design-tokens/scss/iconfont/iconfont" with (
$font-path-iconfont: '../assets/fonts/iconfont'
);
@use "@beeline/design-tokens/scss/iconfont/icons";
@use '@beeline/design-tokens/scss/tokens/themes/dark';
@use '@beeline/design-tokens/scss/tokens/themes';
-57
View File
@@ -1,57 +0,0 @@
@use "@beeline/design-tokens/scss/iconfont/iconfont" with (
$font-path-iconfont: '/fonts/iconfont'
);
@use "@beeline/design-tokens/scss/iconfont/icons";
$font-path-beeline-sans: '/fonts/beeline-sans' !default;
@mixin beeline-sans-font($type, $weight, $style: normal) {
@font-face {
font-family: "Beeline Sans";
src:url('#{$font-path-beeline-sans}/BeelineSans-#{$type}.woff2') format('woff2'),
url('#{$font-path-beeline-sans}/BeelineSans-#{$type}.woff') format('woff'),
url('#{$font-path-beeline-sans}/BeelineSans-#{$type}.ttf') format('truetype');
font-weight: $weight;
font-style: $style;
}
}
@mixin beeline-sans-font-pair($type, $weight) {
@include beeline-sans-font($type, $weight);
}
@include beeline-sans-font-pair(Regular, 400);
@include beeline-sans-font-pair(Medium, 500);
@include beeline-sans-font-pair(Bold, 700);
@include beeline-sans-font-pair(Black, 900);
$font-path-roboto-mono: '/fonts/roboto-mono' !default;
@mixin roboto-mono-font($type, $weight, $style: normal) {
@font-face {
font-family: "Roboto Mono";
src:url('#{$font-path-roboto-mono}/RobotoMono-#{$type}.woff2') format('woff2'),
url('#{$font-path-roboto-mono}/RobotoMono-#{$type}.woff') format('woff'),
url('#{$font-path-roboto-mono}/RobotoMono-#{$type}.ttf') format('truetype');
font-weight: $weight;
font-style: $style;
}
}
@mixin roboto-mono-font-pair($type, $weight) {
@include roboto-mono-font($type, $weight);
}
@include roboto-mono-font-pair(Light, 300);
@include roboto-mono-font-pair(Regular, 400);
@include roboto-mono-font-pair(Medium, 500);
@include roboto-mono-font-pair(Bold, 700);
@@ -0,0 +1 @@
@forward "media";
@@ -1,3 +1,5 @@
@use "sass:map";
// @deprecated
@mixin media($minWidth, $maxWidth) {
@media (min-width: $minWidth) and (max-width: $maxWidth) {
@@ -27,7 +29,7 @@ $breakpoints: (
);
@mixin max($breakpoint) {
$value: map-get($breakpoints, $breakpoint);
$value: map.get($breakpoints, $breakpoint);
@if $value {
@media (max-width: $value) {
+1 -2
View File
@@ -1,4 +1,3 @@
@use "fonts";
@use "design-system";
@use "design-tokens";
@use "vars";
@use "components";
+144
View File
@@ -0,0 +1,144 @@
# Параметры конфигурации IPsec-соединения
В данном разделе приведены параметры конфигурации IPsec-соединения, используемого для организации защищенного канала связи между инфраструктурой заказчика и кластерами. Материал описывает настройки этапов установки соединения и передачи данных, включая методы аутентификации, алгоритмы шифрования и хеширования, группы Диффи-Хеллмана, а также параметры времени жизни ключей.
Ниже приведены основные параметры, задаваемые при развертывании кластера Kafka. Часть параметров определяется клиентом на этапе заказа услуги, часть - фиксирована и не подлежит изменению.
## Данные о конфигурации IPSEC
Параметры подключения (имя туннеля, устройство, публичный IP-адрес) заполняются вручную на основании информации, предоставленной заказчиком.
#### Версия IKE (Internet Key Exchange)
Версия IKE выбирается из выпадающего списка, который содержит в себе два параметра - **v1** и **v2**.
- **IKE v1** - более ранняя версия протокола;
- **IKE v2** - более современная версия (обеспечивает более устойчивое соединение и гибкую обработку ошибок).
Рекомендуется использовать **IKE v2**, если оборудование заказчика это поддерживает.
## Метод аутентификации
Метод аутентификации выбирается вручную из выпадающего списка, который содержит два варианта:
- **PSK (Pre-Shared Key)** - метод аутентификации, при котором используется заранее согласованный общий ключ;
- **Certificate** - аутентификация с использованием цифровых сертификатов.
## Этап 1 - установка защищенного соединения
#### Hash
Определяет алгоритм хеширования **для защиты управляющего канала**.
Данный параметр заполняется вручную из выпадающего списка следующего содержания:
- **SHA 1** - Формирует хеш длиной 160 бит, имеет коллизии (уязвимости), в современных системах считается устаревшим, используется только для совместимости со старым оборудованием;
- **SHA 2 - 256** - Формирует хеш длиной 256 бит, существенно более устойчив к атакам, оптимальный баланс между безопасностью и производительностью, а также, на сегодняшний день, является стандартом по умолчанию в большинстве систем;
- **SHA 2 - 384** - Длина хеша составляет 384 бита, имеет повышенную криптостойкость, требует больше вычислительных ресурсов, чем SHA-1 и SHA 2-256. Используется в средах с повышенными требованиями к безопасности;
- **SHA 2 - 512** - Длина хеша составляет 512 бит, осуществляет самый высокий уровень стойкости из перечисленных, а также создает большую нагрузку на процессор. Обычно применяется в системах с повышенными требованиями к криптографии.
#### Шифрование
Определяет **алгоритм симметричного шифрования.**
Данный параметр заполняется вручную из выпадающего списка следующего содержания:
- **AES 128** - имеет 128-битный ключ, обеспечивает быстрое шифрование, имеет достаточный уровень безопасности для большинства задач;
- **AES 256** - имеет 256-битный ключ, обеспечивает более высокую криптостойкость, оказывает немного большую нагрузку на CPU;
- **AES GCM 12** / **AES GCM 192** / **AES GCM 256** - данные алгоритмы совмещают шифрование и контроль целостности, обладают более современным режимом работы, считаются более эффективными по производительности, а также рекомендуются в современных конфигурациях. Разница между этими тремя алгоритмами лишь в длине ключа.
#### DH Group - группа Деффи Хеллмана
Механизм Diffie-Hellman используется **для безопасной генерации общего секретного ключа** между сторонами туннеля без передачи этого ключа по сети.
Чем выше номер группы и длина ключа - тем выше криптографическая стойкость соединения.
Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений:
- **group 2**;
- **group 5**;
- **group 14**;
- **group 15**;
- **group 16**;
- **group 19**;
- **group 20**;
- **group 21**.
#### IKE Mode (только для IKEv1)
Параметр IKE Mode **определяет способ установления соединения** на этапе 1 при использовании протокола IKEv1.
Доступны два режима: **Main** и **Aggressive**. Они отличаются количеством сообщений при установке соединения и уровнем защиты идентификационных данных.
- Main Mode - является стандартным и более безопасным режимом работы IKEv1.
- Aggressive Mode - упрощённый и ускоренный режим установления соединения. (более низкий уровень защиты данных)
#### Время жизни
Определяет, как долго действуют согласованные ключи в рамках первой фазы.
- Рекомендуемое значение: 86400 секунд (24 часа);
- После истечения времени выполняется повторная генерация ключей.
## Этап 2 - передача данных
Этап 2 IPsec-соединения отвечает за шифрование и защиту пользовательского трафика после того, как защищённый канал был установлен на этапе 1. Этот этап регулирует передачу данных между сторонами через безопасный туннель, который обеспечивает конфиденциальность и целостность данных.
#### Hash
Аналогично этапу 1, параметр Hash используется **для защиты целостности передаваемых данных**. Он обеспечивает проверку, что данные не были изменены при передаче.
Содержит элементы для выбора:
- **SHA 1**;
- **SHA 2 - 256**;
- **SHA 2 - 384**;
- **SHA 2 - 512**.
#### Шифрование
Этап 2 отвечает за **шифрование пользовательского трафика**. Это важнейший параметр, который защищает данные при их передаче по сети.
Доступны следующие алгоритмы:
- **AES 128**;
- **AES 256**;
- **AES GCM 128**;
- **AES GCM 192**;
- **AES GCM 256**.
#### PFS
**Enable perfect forward secrecy (PFS)** - параметр, активирующий генерацию нового ключа на этапе 2. При включенном PFS группа DH будет такая же как и на 1-й фазе. Данный параметр представлен в виде чекбокса.
При его включении:
- На этапе 2 выполняется дополнительный обмен ключами Diffie-Hellman;
- Для каждой новой IPsec-сессии формируется новый независимый криптографический секрет;
- Ключи шифрования пользовательского трафика не зависят от ключей этапа 1.
#### DH Group - группа Деффи Хеллмана
Группа DH **определяет параметры обмена ключами** между сторонами. Чем выше номер группы, тем выше криптографическая стойкость и безопасность обмена.
Данный параметр так же содержит в себе выпадающий список, состоящий из следующих значений:
- **group 2**;
- **group 5**;
- **group 14**;
- **group 15**;
- **group 16**;
- **group 19**;
- **group 20**;
- **group 21**.
#### Время жизни (в секундах)
Определяет, как долго действуют согласованные ключи в рамках второй фазы.
- Рекомендуемое значение: 3600 секунд (1 час).
- После истечения времени выполняется повторная генерация ключей.
#### Префиксы локальной сети заказчика
Этот параметр определяет, какие сети на стороне заказчика будут маршрутизироваться через IPsec-туннель.
Префиксы задаются в формате `192.168.1.0/24`, который позволяет указать диапазон IP-адресов.
+25
View File
@@ -0,0 +1,25 @@
---
section_links:
- title: Назначение сервиса
link: /PaaS/PostgreSQL/about.md
description: Конфигурации и возможности сервиса
- title: Параметры кластера PostgreSQL
link: /PaaS/PostgreSQL/cluster-parameter.md
description: Технические параметры кластера PostgreSQL
- title: Схема подключения
link: /PaaS/PostgreSQL/connection.md
description: Общая схема подключения к Cloud PostgreSQL
- title: Возможности пользователя
link: /PaaS/PostgreSQL/user-capabilities.md
description: Возможности пользователя при создании сервиса
- title: Веб-интерфейс Grafana
link: /PaaS/PostgreSQL/grafana.md
description: Инструкция по работе с Grafana
- title: Веб-интерфейс PgAdmin
link: /PaaS/PostgreSQL/pgadmin.md
description: Инструкция по работе с PgAdmin
---
# Cloud PostgreSQL
В данном разделе представлена документация по управляемому сервису **Cloud PostgreSQL** платформы Beeline Cloud.
+87
View File
@@ -0,0 +1,87 @@
# Cloud PostgreSQL
## Назначение сервиса
**Cloud PostgreSQL** - это управляемый облачный сервис реляционной базы данных PostgreSQL. Он позволяет развернуть и использовать отказоустойчивый кластер базы данных без необходимости самостоятельно настраивать серверы, репликацию и механизмы отказоустойчивости.
PostgreSQL - это современная система управления базами данных, которая поддерживает стандарт SQL и используется для хранения и обработки данных приложений.
В **Cloud PostgreSQL** все основные операции по управлению кластером выполняются автоматически.
Сервис самостоятельно:
- управляет ролями серверов базы данных (основной сервер и реплики);
- отслеживает состояние узлов;
- автоматически переключает основной сервер при сбоях.
Для обеспечения стабильной работы сервиса используется несколько инфраструктурных компонентов:
- **Patroni** - управляет кластером PostgreSQL и автоматическим переключением при отказах;
- **etcd** - хранит состояние кластера и обеспечивает согласованность работы узлов;
- **HAProxy** - обеспечивает единую точку подключения и распределяет клиентские подключения между узлами.
Подключение к базе данных выполняется через прокси-узлы сервиса. Пользователю не требуется подключаться к отдельным серверам кластера — все операции производятся через единую точку доступа.
Для управления базами данных и пользователями доступен [web-интерфейс **pgAdmin**](./pgadmin.md), позволяющий выполнять администрирование непосредственно через браузер.
## Конфигурации кластера
Сервис **Cloud PostgreSQL** поддерживает версии СУБД с 13 по 17 включительно.
Кластер предоставляется в архитектуре Primary–Standby, которая обеспечивает:
- синхронную репликацию данных;
- повышенную отказоустойчивость.
В рамках данной конфигурации создаётся кластер из виртуальных серверов, включающий:
- **Primary** (основной сервер) — обязательный узел, на котором выполняются операции записи данных;
- **Replica** (реплики) — дополнительные узлы (от 0 до 4), создаваемые по желанию пользователя.
Реплики являются полноценными участниками кластера PostgreSQL и могут использоваться для выполнения запросов, не изменяющих данные (например, SELECT).
В многоузловой конфигурации серверы кластера размещаются на разных физических хостах гипервизора, что повышает устойчивость сервиса к отказам оборудования.
## Режимы репликации
По умолчанию фиксация изменений выполняется в **синхронном режиме**. Это означает, что операция записи считается завершённой только после того, как данные будут зафиксированы как на основном сервере, так и на одной из реплик.
Если в кластере настроено несколько реплик, синхронный режим применяется только к одной из них. Остальные реплики работают в асинхронном режиме — изменения передаются на них без ожидания подтверждения.
При необходимости режим репликации может быть изменён на полностью **асинхронный**. В этом случае изменения сначала фиксируются на основном сервере, а затем передаются на реплики с задержкой.
## Доступ к серверам и оптимизация соединений
Прямой доступ к серверам кластера (например, по протоколу SSH) не предоставляется. Пользователь взаимодействует с базой данных исключительно через точки подключения, предоставленные сервисом.
На каждом узле кластера установлен пулер соединений **PgBouncer**, который может использоваться для ускорения работы приложений за счёт оптимизации подключений к базе данных.
::: warning Примечание
Использование PgBouncer не является обязательным - подключение возможно как напрямую к PostgreSQL, так и через пулер, а также одновременно обоими способами.
:::
## Возможности сервиса
**Cloud PostgreSQL** предоставляет набор возможностей, позволяющих использовать PostgreSQL в облаке без необходимости самостоятельного администрирования инфраструктуры.
Сервис обеспечивает:
- автоматическое управление кластером PostgreSQL;
- высокую доступность за счёт репликации и автоматического переключения primary-узла;
- единую точку подключения к базе данных через прокси;
- автоматическое переключение при отказе узлов кластера без вмешательства пользователя;
- web-доступ к управлению базами данных и пользователями через pgAdmin;
- совместимость со стандартными клиентскими инструментами PostgreSQL;
- возможность установки расширений PostgreSQL в базу данных.
## Сценарии использования сервиса
**Cloud PostgreSQL** подходит для использования в системах, где требуется надёжное хранение данных и упрощённое управление инфраструктурой базы данных.
Сервис может применяться в следующих сценариях:
- размещение production-баз данных с высокими требованиями к доступности;
- использование PostgreSQL в микросервисной архитектуре с единой точкой подключения к базе данных;
- хранение критичных данных с минимальным временем простоя при отказах инфраструктуры;
- быстрое развёртывание PostgreSQL-кластера без необходимости ручной настройки репликации и failover;
- администрирование баз данных через веб-интерфейс без прямого доступа к серверам кластера.
+81
View File
@@ -0,0 +1,81 @@
# Описание технических параметров
Данный раздел содержит технические параметры кластера PostgreSQL и порядок их первичной конфигурации.
Настройка указанных параметров выполняется администратором облачного провайдера на этапе развёртывания сервиса. Пользователь не имеет прямого доступа к их самостоятельной установке.
Перед созданием кластера клиент предоставляет перечень требуемых параметров менеджеру. Администратор облачного провайдера выполняет конфигурацию в соответствии с согласованными требованиями.
## Выбор типа и размера дискового хранилища
Производительность базы данных напрямую зависит от скорости, с которой она может читать и записывать данные на диск. При заказе кластера необходимо выбрать тип дискового хранилища, который определит максимальную скорость работы (IOPS) и время отклика.
**IOPS (Input/Output Operations Per Second)** — количество операций чтения или записи, которые диск может выполнить за секунду. Чем выше этот показатель, тем быстрее база данных обрабатывает запросы.
## Доступные типы хранилищ:
| Название | Лимит IOPS |
| -------------- | ------------------ |
| **Fast SAS** | до 2 IOPS на 1 ГБ |
| **SSD** | до 5 IOPS на 1 ГБ |
| **Fast SSD** | до 10 IOPS на 1 ГБ |
| **Ultra NVMe** | до 25 IOPS на 1 ГБ |
::: warning Примечание
После выбора типа диска необходимо указать объем дискового хранилища, который будет выделен под данные кластера PostgreSQL. Минимальный объем - 50 ГБ.
:::
## Конфигурация вычислительных ресурсов
В данном разделе определяются вычислительные мощности кластера: процессорные ресурсы, оперативная память и количество серверов (нод), из которых будет состоять кластер PostgreSQL.
#### Количество нод в кластере
Количество нод определяет отказоустойчивость кластера и возможность распределять запросы на чтение между репликами. Чем больше нод, тем выше надёжность и производительность операций чтения.
Количество нод выбирается в диапазоне **от 1 до 5**.
#### Процессор (CPU)
Процессор — это вычислительная мощность, выделяемая каждой ноде кластера. Количество vCPU определяет, насколько быстро база данных сможет:
- обрабатывать запросы;
- выполнять сложные операции (сортировки, объединения таблиц);
- обслуживать одновременные подключения.
Доступный диапазон: **от 2 до 24 vCPU** на ноду.
#### Оперативная память (RAM)
Оперативная память — один из ключевых ресурсов для производительности базы данных. Данные, помещающиеся в RAM, обрабатываются максимально быстро, без обращения к диску.
Доступный диапазон: **от 4 до 768 ГБ RAM** на ноду.
#### Доступ в интернет
При заказе сервиса можно выбрать пропускную способность канала связи, через который будет осуществляться доступ к кластеру PostgreSQL из сети интернет.
**Доступные варианты скорости:**
- 50 Мбит/с;
- 100 Мбит/с;
- 200 Мбит/с;
- 300 Мбит/с;
- 400 Мбит/с;
- 500 Мбит/с;
- 1000 Мбит/с (1 Гбит/с).
::: warning Примечание
Для выбранного канала предоставляется статический белый IP-адрес.
:::
## Сетевой доступ к кластеру
Для организации защищенного подключения к кластеру Kafka доступны стандартные механизмы, используемые во всех сервисах платформы:
- **IPsec-подключение** - организация защищенного туннеля между инфраструктурой и кластером PostgreSQL. Подробнее см. [раздел IPsec](../IPSEC.md);
- **Interconnection** - прямое сетевое соединение между сервисами внутри платформы без выхода в интернет. Подробнее см. раздел Interconnection.
Выбор конкретного способа подключения зависит от архитектуры приложений и требований к безопасности.
+88
View File
@@ -0,0 +1,88 @@
# Общая схема подключения
Подключение к кластеру **Cloud PostgreSQL** осуществляется через прокси-сервер. Клиентские подключения принимаются прокси, который маршрутизирует трафик к соответствующим узлам кластера (master или replica) в зависимости от выбранного порта.
Прокси является единой точкой входа для всех клиентских подключений и принимает входящие соединения от приложений, административных инструментов и пользователей.
В зависимости от выбранного порта прокси автоматически направляет трафик:
- **на активный primary-узел** - для операций чтения и записи
- **на реплики** - для операций только чтения
::: warning Примечание
Прямое подключение к отдельным узлам базы данных **не используется и не предоставляется**. Взаимодействие с кластером всегда выполняется **через прокси-сервер**.
:::
## Подключение к базе данных
Для подключения к базе данных необходимо использовать IP-адрес прокси-сервера, который предоставляется после заказа услуги.
Этот IP-адрес является единой точкой входа для работы с кластером PostgreSQL. Все подключения к базе данных - как из приложений, так и из клиентских инструментов - выполняются через него.
Использование других IP-адресов или попытка прямого подключения к отдельным узлам кластера не предусмотрены.
## Доступные порты
Для разных типов нагрузки используются разные порты:
|Порт |Назначение |
|------|-----------------------------------------|
|5432 |Primary (чтение и запись) |
|15432 |Replica (только чтение) |
|6432 |Primary через PgBouncer (чтение и запись)|
|16432 |Replica через PgBouncer (только чтение) |
#### Особенности работы портов
- Порты **для чтения и записи** (5432, 6432) всегда направляют трафик на активный primary-узел. При смене primary переключение происходит автоматически;
- Порты **только для чтения** (15432, 16432) направляют трафик на активные реплики. Если реплик несколько, нагрузка распределяется между ними по принципу round-robin;
- Если в кластере **отсутствуют реплики**, порты для чтения не используются - подключение по ним не устанавливается.
#### Рекомендации по выбору порта
- Для OLTP-нагрузки и большого количества соединений рекомендуется использовать **порты PgBouncer (6432 или 16432)**;
- Для операций записи используйте **master-порты (5432 или 6432)**;
- Для read-only запросов можно использовать **replica-порты (15432 или 16432)**.
## Доступ к pgAdmin
Для администрирования базы данных используется [web-интерфейс pgAdmin](./pgadmin.md).
Доступ осуществляется по DNS-имени, которое нужно прописать локально в инфраструктуре откуда будет происходить доступ к web-интерфейсу сервиса:
`10.X.X.4 <domain>.cloud-pg.dfcloud.ru`
После добавления записи pgAdmin будет доступен по адресу:
`https://<domain>.cloud-pg.dfcloud.ru`
Авторизация выполняется с использованием учётных данных, предоставленных вместе с доступом к сервису.
::: warning Примечание
- подключение к базе данных возможно только через указанный прокси-IP;
- в интерфейсе pgAdmin уже добавлен сервер базы данных, созданный для данной инсталляции. Для подключения требуется ввести пароль от учётной записи базы данных;
- pgAdmin предназначен для администрирования и не рекомендуется для выполнения тяжёлых или длительных запросов в production-среде.
:::
## Примеры подключения к PostgreSQL
Подключение к primary:
`psql -h 10.X.X.4 -p 5432 -U <username> -d <database>`
Подключение через PgBouncer:
`psql -h 10.X.X.4 -p 6432 -U <username> -d <database>`
#### Подключение через DBeaver / DataGrip
При создании подключения укажите:
- Host: 10.X.X.4;
- Port: 5432 или 6432;
- Database: `<database>`;
- User / Password: согласно выданным доступам;
- Тип подключения: PostgreSQL.
#### Пример строки подключения
Primary:
`postgresql://<username>:<password>@10.X.X.4:5432/<database>`
Через PgBouncer:
`postgresql://<username>:<password>@10.X.X.4:6432/<database>`
+104
View File
@@ -0,0 +1,104 @@
# Grafana
## Инструкция по работе с метриками
Доступ к метрикам кластера предоставляется после запроса соответствующих прав. После получения доступа можно перейти в систему мониторинга по ссылке: https://metrics.dfcloud.ru. После перехода по ссылке будет представлена главная страница Grafana.
Для просмотра метрик кластера PostgreSQL выполните следующие шаги:
1. В левом боковом меню нажмите **Dashboard**;
2. В списке доступных дашбордов выберите **папку Cloud PostgreSQL**;
3. Внутри папки выберите **дашборд Cloud PostgreSQL** — в нём отображаются все метрики кластера.
## Управление отображаемыми данными
В верхней части дашборда доступны селекторы для настройки отображения:
- **InstallationID** - выбор одного опеределенного кластера;
- **Cluster node name** - выбор конкретного нода кластера, в котором значения графиков меняются в зависимости от выбранного хоста (селектор влияет на все графики, кроме блока Patroni);
- **Database** - выбор базы данных, по которым отображаются метрики;
- **Lock table** - выбор типа блокировки для отображения (применим не для всех графиков).
## Метрики PostgreSQL
Метрики отображают ключевые параметры конфигурации и текущие показатели работы экземпляра PostgreSQL.
| Наименование метрики | Описание метрики |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------|
| **Version** | Показывает текущую версию PostgreSQL, установленную на кластере. |
| **Current fetch data** | Объем данных, извлеченных из базы за текущий период (операции чтения). |
| **Current insert data** | Объем данных, вставленных в базу (операции записи новых данных). |
| **Current update data** | Объем данных, обновленных в базе. |
| **Seq Page Cost** | Стоимость последовательного чтения страницы данных. Влияет на выбор плана запроса: чем выше значение, тем реже оптимизатор будет выбирать последовательное сканирование таблиц. |
| **Random Page Cost** | Стоимость чтения случайной страницы данных. Низкое значение говорит о том, что в системе используются быстрые диски, и оптимизатор будет чаще выбирать доступ по индексам. |
| **Max Connections** | Максимальное количество одновременных подключений к базе данных, разрешенное на сервере. |
| **Shared Buffers** | Объем оперативной памяти, выделенный под кэш данных PostgreSQL. Здесь хранятся часто используемые данные для ускорения доступа к ним. |
| **Effective Cache** | Предполагаемый размер системного кэша файлов. Используется оптимизатором для оценки вероятности нахождения данных в кэше операционной системы. |
| **Maintenance Work Mem** | Объем памяти для выполнения операций обслуживания. |
| **Work Mem** | Объем памяти, выделяемый для внутренних сортировок и хеш-таблиц при выполнении запросов (на каждую операцию). |
| **Max WAL Size** | Максимальный размер журнала предзаписи, после достижения которого запускается процесс контрольной точки (checkpoint). |
| **Max Worker Processes** | Максимальное количество фоновых процессов, которые могут быть запущены в системе. |
| **Max Parallel Workers** | Максимальное количество параллельных процессов, которые могут быть задействованы при выполнении одного запроса. |
## Метрики Database Stats
Метрики отображают текущую нагрузку и состояние баз данных в кластере PostgreSQL. Данные метрики позволяют:
- оценить эффективность работы баз данных;
- отследить скачки нагрузки;
- своевременно среагировать на потенциальные проблемы до того, как они повлияют на работу приложений.
| Наименование | Описание |
|---------------------------| -------------------|
| **Average CPU Usage** | Показывает время, затраченное на выполнение пользовательских и системных задач, а также, насколько интенсивно используются вычислительные ресурсы сервера базы данных. |
| **Average Memory Usage** | Средний объем оперативной памяти, используемой процессами PostgreSQL за 5-минутные интервалы. Показывает, сколько памяти потребляет база данных в процессе работы. |
| **Open File Descriptors** | Количество открытых файловых дескрипторов процессами PostgreSQL. Метрика показывает среднее (Mean), последнее (Last), максимальное (Max) и минимальное (Min) значение за интервал. |
| **Active sessions** | Показывает, сколько в данный момент выполняется запросов к PostgreSQL. Метрика показывает среднее (Mean), последнее (Last), максимальное (Max) значение. |
| **Transcations** | Количество транзакций в базах данных кластера. Метрика разделена на два типа операций: commits (успешно завершенные транзакции) и rollbacks (откаченные транзакции). |
| **Update data** | Объем данных, обновленных в базах данных кластера. Показывает, сколько данных было изменено в результате выполнения операций UPDATE. |
| **Fetch data (SELECT)** | Объем данных, извлеченных из базы с помощью запросов SELECT. Показывает, сколько данных было считано из базы в результате операций чтения. |
| **Insert data** | Объем данных, вставленных в базы данных кластера. Показывает, сколько данных было добавлено в результате выполнения операций INSERT. |
| **Lock tables** | Количество блокировок таблиц в базах данных кластера. Показывает, сколько раз таблицы были заблокированы для выполнения операций.<br>AccessShareLock - это блокировка, которая возникает, когда кто-то читает данные из таблицы (делает SELECT). Данная блокировка не мешает операциям чтения, но не дает удалить в этот момент таблицу или изменить ее структуру. |
| **Return data** | Объем данных, возвращаемых клиенту в результате выполнения запросов. Показывает, сколько данных было отправлено обратно клиенту после обработки запросов в базе. |
| **Idle sessions** | Количество бездействующих сессий подключения к базе данных. Показывает, сколько открытых подключений в данный момент не выполняют никаких запросов и просто ждут. |
| **Delete data** | Объем данных, удаленных из базы данных в результате выполнения операций DELETE. Показывает, сколько данных было удалено из таблиц. |
| **Cache Hit Rate** | Показывает процент запросов к данным, которые были удовлетворены из кэша (оперативной памяти), без обращения к диску. Показывает, насколько эффективно используется кэш PostgreSQL. |
| **Buffers (bgwriter)** | Метрика, показывающая активность фонового процесса записи, который занимается синхронизацией данных из оперативной памяти на диск. |
| **Conflicts/Deadlocks** | Метрика, отслеживающая две проблемы при работе с базой данных: конфликты восстановления и взаимоблокировки. |
| **Temp File (Bytes)** | Объем данных, записанных во временные файлы при выполнении запросов в базах данных. PostgreSQL создает временные файлы на диске, когда для выполнения запроса не хватает оперативной памяти. |
| **Checkpoint Stats** | Метрика, показывающая время, затрачиваемое на выполнение checkpoints в PostgreSQL, где: <br>- **write_time** - время, затраченное на запись данных на диск во время checkpoint (сколько миллисекунд ушло на запись файлов).<br>- **sync_time** - время, затраченное на синхронизацию файлов с диском (чтобы данные гарантированно сохранились). |
## Метрики Patroni
Метрик отображают состояние и конфигурацию кластера PostgreSQL под управлением Patroni. Эти метрики позволяют контролировать отказоустойчивость кластера, отслеживать переключения мастера и убеждаться, что репликация работает штатно.
| Наименование | Описание |
|------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|
| **Patroni Leader** | Метрика, которая показывает, какая нода в кластере PostgreSQL в данный момент является master-сервером, принимающим запросы на запись. |
| **Patroni Replica** | Метрика, которая показывает, какие узлы кластера PostgreSQL в данный момент выполняют роль реплики. |
| **Sync Standby** | Метрика, которая показывает, какая из реплик в кластере PostgreSQL назначена синхронной. |
| **PostgreSQL WAL Replay** | Метрика, которая показывает, включена ли на узлах кластера синхронизация данных через WAL. |
| **PostgreSQL Pending Restart** | Метрика, которая показывает, требуется ли перезагрузка PostgreSQL на узлах кластера после изменения конфигурационных параметров. |
| **Patroni Primary Node** | Метрика, которая показывает, какой узел в кластере PostgreSQL в данный момент является основным и принимает запросы на запись. |
| **Patroni Secondary Nodes** | Метрика, которая показывает, какие узлы кластера PostgreSQL в определенные моменты времени выполняли роль реплик. |
| **Replicas Received WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), полученных каждой репликой кластера. |
| **Primary WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), на основном сервере кластера PostgreSQL. |
| **Replicas Replayed WAL Location** | Метрика, показывающая объем журналов предзаписи (WAL), которые были не просто получены, а уже применены на репликах кластера. |
| **WAL Replay Paused** | Метрика, которая отслеживает, не приостановлен ли процесс применения WAL-журналов на узлах кластера. Если передача или применение WAL-файлов останавливается, на графике происходит скачок. |
## Метрики Hosts
Блок Hosts управляется селектором **Cluster node name**. Метрики отображают состояние и ресурсы серверов, на которых развернут кластер PostgreSQL. Данные метрики позволяют оценить, хватает ли серверу ресурсов для текущей нагрузки, и своевременно обнаружить проблемы с производительностью или нехваткой места на дисках.
| Наименование | Описание |
| -------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
| **CPU Busy** | Метрика, показывающая общую загруженность всех процессорных ядер на сервере, где работает PostgreSQL. |
| **RAM Used** | Метрика, показывающая процент оперативной памяти, который занят на сервере всеми процессами. |
| **CPU Cores** | Метрика, показывающая общее количество процессорных ядер, доступных на сервере, где работает PostgreSQL. |
| **RAM Total** | Метрика, показывающая общий объем оперативной памяти, установленный на сервере. |
| **DB Disk Total** | Метрика, показывающая общий объем дискового пространства, выделенного для хранения данных базы данных PostgreSQL на сервере. |
| **CPU Basic** | Метрика, которая показывает детальную разбивку загрузки процессора по типам выполняемых задач. Она позволяет увидеть, на что именно тратится процессорное время на сервере. |
| **Memory Basic** | Метрика, которая показывает детальную разбивку использования оперативной памяти на сервере, а также информацию о SWAP. |
| **Disk IOps** | Метрика, показывающая количество операций чтения и записи, выполняемых на диске сервера в секунду. |
| **Disk Space Used Basic** | Метрика, показывающая процент занятого дискового пространства на всех подключенных файловых системах сервера. |
| **Disk R/W Data** | Показывает объем данных в байтах, читаемых с диска и записываемых на диск в секунду. |
| **Filesystem space available** | Метрика, показывающая объем свободного дискового пространства на файловой системе сервера. |
+67
View File
@@ -0,0 +1,67 @@
# PgAdmin
После предоставления доступа к сервису **Cloud PostgreSQL** пользователь получает возможность управлять базами данных через веб-интерфейс **pgAdmin**. Ниже приведена инструкция по входу в систему и выполнению основных операций.
## Вход в pgAdmin
1. Откройте веб-браузер и перейдите по адресу, предоставленному для доступа к pgAdmin;
2. На странице авторизации введите **логин и пароль от pgAdmin**;
> Учетные данные направляются пользователю на электронную почту при предоставлении доступа.
3. После входа в систему в левой панели навигации откройте раздел **Servers**;
4. Выберите предварительно настроенный сервер с названием **PostgreSQL**;
5. В открывшемся окне введите пароль;
> Важно: на данном этапе необходимо указать **пароль учетной записи базы данных**, а не пароль от pgAdmin.
6. Нажмите **ОК**.
После успешной аутентификации станет доступен веб-интерфейс СУБД PostgreSQL.
## Реплики и параметры конфигураций
pgAdmin позволяет осуществлять мониторинг реплик, входящих в состав кластера. Чтобы просмотреть список реплик необходимо открыть раздел **Replica nodes** в панели навигации.
### Просмотр состояния репликаций
Чтобы проверить состояние репликации:
1. Выберите нужную реплику в разделе **Replica nodes**;
2. Перейдите в подраздел **Replication**;
3. Откройте пункт **Replication stats**;
4. Разверните раздел **Подробности** - в нем отображаются все параметры и текущее состояние репликации.
Вкладка **Replication** позволяет определить, выполняется ли передача данных на дополнительные узлы кластера.
### Просмотр конфигураций реплики
Чтобы просмотреть **параметры конфигурации PostgreSQL**, применённые к конкретной реплике, перейдите в раздел **Конфигурация**, расположенный в блоке **Replica nodes**.
Раздел **Конфигурация** содержит следующие параметры:
- **Имя** - наименование конфигурационного параметра;
- **Категория** - логическая группа параметра;
- **Значение** - текущее установленное значение;
- **Единицы** - единицы измерения (если применимо);
- **Описание** - краткое пояснение назначения параметра.
> Вкладка **Конфигурация** предназначена для просмотра текущих настроек реплики.
## Базы данных
### Просмотр существующих баз данных:
Чтобы просмотреть существующие базы данных, откройте раздел Базы данных в левой панели навигации. В этом разделе отображается перечень всех созданных баз.
### Создание новой базы данных:
1. Щелкните правой кнопкой мыши по разделу **Базы данных**;
2. В контекстном меню выберите **Создать**, затем - **База данных**;
3. Заполните обязательные поля в открывшейся форме;
4. Нажмите **Сохранить**.
## Роли входа / группы
В разделе **Роли входа/группы** отображается список пользователей (ролей), имеющих доступ к базам данных кластера.
### Создание новой роли:
1. Щелкните правой кнопкой мыши по разделу **Роли входа/группы**;
2. Выберите **Создать**, затем - **Роль входа/группы**;
3. Заполните необходимые параметры в форме создания роли;
4. Нажмите **Сохранить**.
+119
View File
@@ -0,0 +1,119 @@
# Возможности пользователя
Данный раздел описывает права, которые предоставляются пользователю PostgreSQL при создании сервиса **Cloud PostgreSQL**, а также перечень административных операций, доступных ему для самостоятельного выполнения.
При развертывании сервиса автоматически создаётся пользователь базы данных с преднастроенными атрибутами и привилегиями. Эти права позволяют заказчику самостоятельно управлять своими базами данных, ролями и пользователями в рамках созданного экземпляра PostgreSQL.
## Общая информация о пользователе
При инициализации сервиса автоматически создаётся пользователь:
```nginx
client
```
Данный пользователь является основной учётной записью для административной работы в рамках предоставленного экземпляра PostgreSQL.
Он предназначен для самостоятельного управления в пределах выданных привилегий:
- базами данных;
- ролями;
- правами доступа.
## Выданные права и ограничения
Пользователю `client` назначается набор атрибутов и привилегий, позволяющих выполнять административные операции в рамках своего экземпляра базы данных.
#### Атрибуты роли
Пользователь создаётся со следующими атрибутами:
- `CREATEDB` — разрешено создание и удаление баз данных;
- `CREATEROLE` — разрешено создание ролей и пользователей, а также управление их.
Атрибут `SUPERUSER` пользователю не предоставляется. Соответственно, доступ к системным операциям уровня кластера и настройкам сервера отсутствует.
#### Права на системную базу postgres:
К стандартной базе данных `postgres` пользователю предоставлено только право подключения — `CONNECT`
**Иные привилегии (создание объектов, изменение схем и т.д.) на данную базу не выдаются.**
## Мониторинг и системные представления
Для выполнения базовых задач мониторинга пользователю дополнительно предоставлены:
- членство в роли `pg_monitor`;
- право `SELECT` на системное представление:
```sql
pg_catalog.pg_stat_replication
```
Доступ к системной информации предоставляется исключительно **в режиме чтения**. Изменение системных представлений и параметров сервера недоступно.
## Изменение пароля
После первого подключения к базе данных пользователь `client` обязан выполнить изменения пароля.
Изменить пароля можно:
- в открытом виде (с передачей нового значения пароля);
- с указанием заранее сгенерированного хэша.
На сервере используется алгоритм шифрования паролей:
```
scram-sha-256
```
При использовании **SCRAM** применяется следующий формат хэша:
```
$<iterations>:<salt>$<storedkey>:<serverkey>
```
| Операция | Описание | Команда SQL |
|----------|----------|-------------|
|Смена пароля в открытом виде | Для смены пароля в открытом виде | ```ALTER USER client WITH PASSWORD 'new_strong_password';``` |
|Смена пароля с указанием хэша | Рекомендуется использовать сложный уникальный пароль, соответствующий требованиям информационной безопасности, и хранить его в защищённом хранилище | ```ALTER USER client WITH ENCRYPTED PASSWORD '$4096:...';``` |
|Создание новой базы данных | Для создания базы данных | ```CREATE DATABASE app_db;``` |
|Создание базы данных с указанием владельца | Пользователь, указанный как владелец, будет иметь полный контроль над базой данных, включая права на её удаление и изменение. По умолчанию владельцем создаваемой базы данных является пользователь, который её создает | ```CREATE DATABASE app_db OWNER client;``` |
## Создание пользователей и ролей
Пользователь `client` имеет право создавать новые роли и пользователей для приложений, а также управлять их правами доступа.
| Операция | Описание | Команда SQL |
|----------|----------|-------------|
|Создание роли без логина | Для входа в базу данных (например, для организации прав доступа) | ```CREATE ROLE app_role; ```|
|Создание пользователя с паролем | Для создания пользователя с паролем. После выполнения этой команды новый пользователь `app_user` будет иметь возможность входа в базу данных, используя указанный пароль. | ```CREATE USER app_user WITH PASSWORD 'app_password';``` |
|Назначение роли пользователю | Для назначения роли пользователю. Данная команда позволяет управлять правами пользователя в рамках определённой роли. После выполнения этой команды пользователь `app_user` станет членом роли `app_role`, и будет наследовать все права, связанные с этой ролью. | ```GRANT app_role TO app_user; ``` |
## Управление правами доступа
После создания пользователей и ролей необходимо назначить им соответствующие права доступа.
| Операция | Описание | Команда SQL |
|----------|----------|-------------|
|Передача владельца базы данных | Для передачи прав владения базой данных другому пользователю. После выполнения этой команды база данных `app_db` будет принадлежать пользователю `app_user`, и он будет иметь полный контроль над ней.| ```ALTER DATABASE app_db OWNER TO app_user;``` |
|Выдача прав на подключение к базе данных | Для предоставления прав к подключению к базе данных. После выполнения этой команды пользователь может `app_user` подключаться к базе данных `app_db`. | ```GRANT CONNECT ON DATABASE app_db TO app_user;```|
|Предоставление прав на схему public | Для предоставления прав на использование схемы `public`. После выполнения этой команды пользователь `app_user` может использовать объекты в схеме `public`, а также создавать новые объекты внутри неё. | ```GRANT USAGE, CREATE ON SCHEMA public TO app_user;```|
|Предоставление прав на существующие таблицы | Для предоставления доступа пользователю к существующим таблицам в схеме `public`. После выполнения этой команды пользователь `app_user` может выполнять операции чтения, вставки, обновления и удаления данных в существующих таблицах схемы `public`.| ```GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;``` |
|Предоставление прав на будущие таблицы | Если необходимо автоматически предоставить пользователю права на новые таблицы, создаваемые в схеме `public`. После выполнения этой команды все будущие таблицы, создаваемые в схеме `public`, будут автоматически иметь права для пользователя `app_user` на чтение, вставку, обновление и удаление данных. | ```ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_user;```|
## Мониторинг репликации
Пользователь `client` имеет доступ к системным представлениям для мониторинга состояния репликации в кластере PostgreSQL.
| Операция | Описание | Команда SQL |
|----------|----------|-------------|
|Просмотр состояния репликации | Для просмотра текущего статуса репликации. Этот запрос возвращает информацию о всех репликах, подключённых к основному (primary) серверу. |```SELECT * FROM pg_stat_replication;```|
::: warning Ограничения доступа реплкации
Пользователь `client` имеет доступ к данным в представлении `pg_stat_replication` только в режиме **read-only**. Это означает, что он может просматривать состояние репликации, но не может изменять или вмешиваться в процесс репликации.
:::
+12
View File
@@ -0,0 +1,12 @@
---
section_links:
- title: Cloud PostgreSQL
link: /PaaS/PostgreSQL/PostgreSQL-index.md
description: Обзор сервиса PostgreSQL
- title: IPSEC
link: /PaaS/IPSEC.md
description: Параметры конфигурации IPSEC
---
# Начало работы в Cloud PostgreSQL
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-38
View File
@@ -1,38 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/themes' as *;
:root {
--app-navbar-height: #{$app-navbar-height};
}
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
width: 100%;
height: 100vh;
}
html {
overflow-y: auto;
}
#app {
height: 100vh;
}
html.dark-theme {
background-color: $color-background-base;
color: $color-text-active;
}
a:visited {
color: $color-text-active !important;
}
a:hover {
text-decoration: none !important;
}
-5
View File
@@ -1,5 +0,0 @@
@import 'variables';
@import 'base';
@import 'form';
@import 'helpers';
@import 'components';
-3
View File
@@ -1,3 +0,0 @@
// Navbar
$app-navbar-height: 3.5rem;
$app-header-height: 64px;
-122
View File
@@ -1,122 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/themes' as *;
@use '@beeline/design-tokens/scss/tokens/components/fab' as *;
@use '@beeline/design-tokens/scss/tokens/components/button' as *;
@use '@beeline/design-tokens/scss/tokens/globals' as *;
@use '@beeline/design-tokens/scss/mixin';
@mixin fab_button {
background-color: $button-overlay-background-color;
padding-left: $button-only-text-small-padding-horizontal;
padding-right: $button-only-text-small-padding-horizontal;
letter-spacing: $button-small-text-font-letter-spacing;
line-height: $button-small-text-font-line-height;
font-size: $button-small-text-font-size;
height: $button-small-height;
color: $button-overlay-text-color;
box-shadow: none;
border: 1px solid $button-outline-border-color;
border-radius: $button-border-radius;
&:hover {
cursor: pointer;
background-color: $button-overlay-background-color-hover;
}
}
.app-fab {
height: $fab-standard-height;
width: $fab-standard-width;
position: fixed;
z-index: 50;
display: inline-flex;
align-items: center;
border: 0;
padding: $fab-standard-padding;
letter-spacing: $fab-text-font-letter-spacing;
line-height: $fab-text-font-line-height;
font-size: $fab-text-font-size;
font-weight: $fab-text-font-weight;
box-shadow: $fab-shadow;
background-color: $color-background-inverse;
color: $color-text-active-inverse;
cursor: pointer;
&__icon {
width: 24px;
height: 24px;
}
&:hover {
// background-color: $fab-hover-background-color;
}
&--focused {
border-color: $fab-focused-border-color;
border-width: $fab-focused-border-width;
}
&--mini {
height: $fab-mini-height;
width: $fab-mini-width;
border-radius: $fab-mini-border-radius;
padding: $fab-mini-padding;
}
&--extended {
height: $fab-extended-height;
border-radius: $fab-extended-border-radius;
padding-right: $fab-extended-padding-right;
padding-left: $fab-extended-padding-left;
& &__icon {
margin-right: $fab-extended-icon-spacing;
}
}
.app-fab--extended.app-fab--mini {
height: $fab-mini-height;
}
&--disabled {
opacity: $fab-disabled-opacity;
}
}
.app-fab-dialog {
position: fixed;
bottom: 44px;
right: 0;
// background-color: $color-background-medium;
background-color: transparent;
// border-radius: 12px;
padding: 1rem;
// border: 1px solid $color-border;
// min-width: 300px;
// box-shadow: $elevation-medium;
.icon-contained {
display: inline-flex;
justify-content: center;
align-items: center;
width: 40px;
height: 40px;
background-color: $color-status-neutral-background;
color: $color-status-neutral;
border-radius: 12px;
}
#feedback_button {
@include fab_button();
}
#bug_button {
@include fab_button();
line-height: 38px;
}
a#bug_button,
a#bug_button:visited,
a#bug_button:active {
color: $button-overlay-text-color !important;
}
}
@@ -1 +0,0 @@
@import 'fab';
-1
View File
@@ -1 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/components/formfield' as formfield;
-104
View File
@@ -1,104 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/components/textarea' as *;
@use '@beeline/design-tokens/scss/tokens/components/formfield';
@use '@beeline/design-tokens/scss/tokens/themes';
.textarea-field {
$px: 16px;
display: block;
width: 100%;
position: relative;
padding: $textarea-without-label-medium-text-margin-top $px $textarea-text-margin-bottom;
height: $textarea-without-label-medium-height;
background: formfield.$formfield-background-color;
border: formfield.$formfield-border-width formfield.$formfield-border-style formfield.$formfield-border-color;
border-radius: formfield.$formfield-border-radius;
& &__label {
position: absolute;
top: $textarea-with-label-text-margin-top;
left: $px;
transition: font-size 300ms ease-out;
color: formfield.$formfield-label-color;
}
& textarea {
height: $textarea-medium-text-height;
width: 100%;
outline: none;
border: none;
box-shadow: none;
resize: none;
background-color: transparent;
color: themes.$color-text-active;
}
& &__resizer {
position: absolute;
bottom: $textarea-resizer-margin-bottom;
right: $textarea-resizer-margin-right;
rotate: -45deg;
width: 1em;
height: 1em;
&:hover {
cursor: nwse-resize;
}
&::before {
content: '';
display: flex;
background-color: darkslategrey;
width: 10px;
height: 1px;
}
&::after {
content: '';
display: flex;
position: relative;
right: -3px;
bottom: -2px;
background-color: darkslategrey;
width: 4px;
height: 1px;
}
}
&.textarea-field--with-label {
height: $textarea-with-label-medium-height;
padding-top: $textarea-with-label-text-margin-top;
&.textarea-field--floated .textarea-field__label {
top: $textarea-medium-label-floated-margin-top;
line-height: $textarea-small-label-floated-font-line-height;
font-size: $textarea-small-label-floated-font-size;
}
&.textarea-field--small {
height: $textarea-with-label-small-height;
padding-top: $textarea-small-label-margin-top;
top: $textarea-small-label-floated-margin-top;
& .textarea-field__label {
font-size: $textarea-small-label-font-size;
font-weight: $textarea-small-label-font-weight;
letter-spacing: $textarea-small-label-font-letter-spacing;
}
}
}
&.textarea-field--focused {
border-color: formfield.$formfield-border-color-focus;
background-color: transparent;
}
&.textarea-field--small {
padding-top: $textarea-without-label-small-text-margin-top;
height: $textarea-without-label-small-height;
& textarea {
height: $textarea-small-text-height;
}
}
}
-70
View File
@@ -1,70 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/components/textfield' as *;
@use '@beeline/design-tokens/scss/tokens/globals';
@use '@beeline/design-tokens/scss/tokens/themes' as theme;
.textfield {
display: block;
position: relative;
width: 100%;
height: globals.$size-control-height-medium;
border: globals.$size-border-width-regular solid transparent;
padding-top: $textfield-without-label-medium-text-margin-vertical;
padding-bottom: $textfield-without-label-medium-text-margin-vertical;
background-color: theme.$color-control-background;
border-radius: 12px; // globals.$size-border-radius-x6;
&:hover {
background-color: theme.$color-control-background-hover;
}
// input
input {
outline: none;
box-shadow: none;
}
// label
&--with-label {
// padding-top: $textfield-with-label-medium-text-margin-top;
// padding-bottom: $textfield-with-label-medium-text-margin-bottom;
}
&__label {
// padding-top: $textfield-medium-label-margin-top;
&.textfield__label--floated {
// padding-top: $textfield-medium-label-margin-top-floated;
}
}
// small
&--small {
height: globals.$size-control-height-small;
}
// large
&--large {
height: globals.$size-control-height-large;
padding-top: $textfield-without-label-large-text-margin-vertical;
padding-bottom: $textfield-without-label-large-text-margin-vertical;
&.textfield--with-label {
padding-top: $textfield-with-label-large-text-margin-top;
padding-bottom: $textfield-with-label-large-text-margin-bottom;
}
.textfield__label {
padding-top: $textfield-large-label-margin-top;
&.textfield__label--floated {
padding-top: $textfield-large-label-margin-top-floated;
}
}
}
// states
&--focused {
border-color: theme.$color-border-focus;
background-color: theme.$color-background-base;
}
}
-5
View File
@@ -1,5 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/themes' as *;
.app-bg-status-error {
background-color: $color-status-error-background;
}
-3
View File
@@ -1,3 +0,0 @@
.app-cursor-pointer {
cursor: pointer;
}
-4
View File
@@ -1,4 +0,0 @@
@import 'text';
@import 'color';
@import 'media';
@import 'common';
-80
View File
@@ -1,80 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/themes' as theme;
@use 'src/assets/scss/app/mixins' as mixins;
@mixin truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
@mixin truncate-lines($lines: 2) {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: $lines;
overflow: hidden;
text-overflow: ellipsis;
}
.app-text-active {
color: theme.$color-text-active;
}
.app-text-inactive {
color: theme.$color-text-inactive;
}
// styles for hyperlinks
.app-link {
color: theme.$color-text-active;
&:hover {
color: theme.$color-text-active;
}
}
.app-text-caption {
@include mixins.text-caption;
}
.app-text-truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
// Sizes
.app-text-size-subtitle-3 {
font-size: 15px;
line-height: 20px;
font-weight: 500;
letter-spacing: 0.2px;
}
.app-text-size-body-3 {
font-size: 15px;
line-height: 18px;
letter-spacing: 0.2px;
font-weight: 400;
}
// Colors
.app-text-color-caption {
color: theme.$color-text-inactive;
}
.app-text-warning {
color: theme.$color-status-warning;
}
.app-text-info {
color: theme.$color-status-info;
}
.app-text-error {
color: theme.$color-status-error;
}
.app-text-success {
color: theme.$color-status-success;
}
// Breaks
.app-break-keep-all {
word-break: keep-all;
}
-1
View File
@@ -1 +0,0 @@
@import 'spinner';
@@ -1,6 +0,0 @@
@use 'src/assets/scss/app/variables' as v;
.app-loading-screen {
display: block;
height: calc(100vh - v.$app-header-height);
}
-1
View File
@@ -1 +0,0 @@
@forward 'text';
-29
View File
@@ -1,29 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/themes' as theme;
%text_caption {
font-size: 13px;
line-height: 16px;
}
@mixin text_caption {
@extend %text_caption;
color: theme.$color-text-inactive;
}
@mixin text_caption_error {
@extend %text_caption;
color: theme.$color-status-error;
}
@mixin text_body_2 {
font-style: normal;
font-weight: 400;
font-size: 17px;
line-height: 22px;
}
@mixin truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
-10
View File
@@ -1,10 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/themes';
@use '@beeline/design-tokens/scss/tokens/themes/dark';
:root {
@include themes.theme();
}
.dark-theme {
@include themes.theme(dark.$theme);
}
-3
View File
@@ -1,3 +0,0 @@
@use '@beeline/design-tokens/scss/font-face' with (
$font-path-beeline-sans: '../fonts/beeline-sans'
);
-40
View File
@@ -1,40 +0,0 @@
// @use "@beeline/design-tokens/scss/iconfont/iconfont" with (
// $font-path-iconfont: '../fonts/iconfont'
// );
@use '@beeline/design-tokens/scss/iconfont/icons';
@font-face {
font-display: block;
font-family: 'BeelineIcons';
font-style: normal;
font-weight: 400;
src:
url('../fonts/iconfont/BeelineIcons.woff2') format('woff2'),
url('../fonts/iconfont/BeelineIcons.woff') format('woff'),
url('../fonts/iconfont/BeelineIcons.ttf') format('ttf');
}
.beeline-icons {
font-family: 'BeelineIcons', sans-serif;
font-weight: normal;
font-style: normal;
font-size: 24px; /* Preferred icon size */
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: 'liga';
}
-4
View File
@@ -1,4 +0,0 @@
@import 'fonts';
@import 'icons';
@import 'base';
@import 'scrollbar';
-29
View File
@@ -1,29 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/themes';
html {
scrollbar-color: themes.$color-text-inactive transparent;
}
* {
scrollbar-width: thin;
}
body::-webkit-scrollbar {
display: none;
}
::-webkit-scrollbar {
width: 15px;
}
::-webkit-scrollbar-track {
background-color: transparent;
}
::-webkit-scrollbar-thumb {
background-color: themes.$color-text-inactive;
border: 4px solid transparent;
background-clip: content-box;
border-radius: 100px;
min-height: 28px;
}
-51
View File
@@ -1,51 +0,0 @@
@use 'sass:map';
@use '@beeline/design-tokens/scss/tokens/globals';
@use '@beeline/design-tokens/scss/tokens/themes/light';
@use '@beeline/design-tokens/scss/tokens/components/button';
// Colors
$primary: globals.$color-background-brand;
$background: map.get(light.$theme, 'color-background-base');
$info: map.get(light.$theme, 'color-status-info');
$success: map.get(light.$theme, 'color-status-success');
$warning: map.get(light.$theme, 'color-status-warning');
$danger: map.get(light.$theme, 'color-status-error');
// Typography
$family-primary: globals.$font-family-text;
$title-color: map.get(light.$theme, 'color-text-active');
$subtitle-color: map.get(light.$theme, 'color-text-inactive');
// Radius
$radius: globals.$size-border-radius-x6;
// Buttons
$button-padding-vertical: globals.$size-spacing-x4;
$button-padding-horizontal: globals.$size-spacing-x5;
$button-background-color: button.$button-plain-background-color;
$button-focus-border-color: map.get(light.$theme, 'color-background-base-focused');
$button-disabled-opacity: button.$button-opacity-disabled;
// Box
$box-radius: $radius;
$box-shadow: globals.$elevation-low;
$box-padding: globals.$size-spacing-x6;
$box-link-hover-shadow: globals.$elevation-medium;
$box-link-active-shadow: globals.$elevation-medium;
// Form
$input-color: map.get(light.$theme, 'color-text-active');
$input-background-color: map.get(light.$theme, 'color-control-background');
$label-color: map.get(light.$theme, 'color-text-inactive');
$label-weight: globals.$font-weight-caption;
// Table
$table-color: map.get(light.$theme, 'color-text-active');
$table-background-color: map.get(light.$theme, 'color-background-base');
$table-cell-border: 1px solid map.get(light.$theme, 'color-control-background');
$table-cell-padding: 16px 16px;
$table-cell-heading-color: map.get(light.$theme, 'color-text-active');
$table-head-cell-border-width: 1px;
@import 'bulma/bulma';
@import 'overrides';
-12
View File
@@ -1,12 +0,0 @@
@use 'sass:map';
@use '@beeline/design-tokens/scss/tokens/themes/dark';
.box {
.dark-theme & {
background-color: map.get(dark.$theme, 'color-background-low');
&:hover {
background-color: map.get(dark.$theme, 'color-background-medium');
}
}
}
@@ -1,11 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/components/button' as button;
@use '@beeline/design-tokens/scss/tokens/themes';
.button {
font-weight: button.$button-medium-text-font-weight;
color: themes.$color-text-active;
&:hover {
color: themes.$color-text-active;
}
}
@@ -1,16 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/themes';
.dropdown {
&-content {
background-color: themes.$color-background-medium;
}
.dropdown-item {
color: themes.$color-text-active;
&:hover {
background-color: themes.$color-background-base-hover;
color: themes.$color-text-active;
}
}
}
@@ -1,7 +0,0 @@
@import 'button';
@import 'title';
@import 'box';
@import 'form';
@import 'table';
@import 'dropdown';
@import 'text';
@@ -1,42 +0,0 @@
@use 'sass:map';
@use '@beeline/design-tokens/scss/tokens/globals';
@use '@beeline/design-tokens/scss/tokens/themes/light';
@use '@beeline/design-tokens/scss/tokens/themes/dark';
@use '@beeline/design-tokens/scss/tokens/components/button';
.table {
.dark-theme & {
color: map.get(dark.$theme, 'color-text-active');
background-color: map.get(dark.$theme, 'color-background-base');
td,
th {
border: 1px solid map.get(dark.$theme, 'color-control-background');
}
th {
color: map.get(dark.$theme, 'color-text-active');
}
}
td,
th {
border-width: 1px;
border-style: solid;
}
th {
font-weight: globals.$font-weight-medium;
}
tbody {
tr {
&:last-child {
td,
th {
border-bottom-width: 1px;
}
}
}
}
}
@@ -1,15 +0,0 @@
@use '@beeline/design-tokens/scss/tokens/themes' as *;
code {
background-color: $color-background-base;
}
pre {
color: $color-text-active;
background-color: $color-background-base;
}
.help {
font-size: 13px;
line-height: 16px;
}
@@ -1,38 +0,0 @@
@use '@beeline/design-tokens/scss/mixin' as bee;
.title {
@include bee.h3();
&.is-1 {
@include bee.h1();
}
&.is-2 {
@include bee.h2();
}
&.is-3 {
@include bee.h3();
}
&.is-4 {
@include bee.h4();
}
&.is-5 {
@include bee.h5();
}
&.is-6 {
@include bee.h6();
}
}
.subtitle {
@include bee.subtitle2();
&.is-1 {
@include bee.subtitle1();
}
&.is-2 {
@include bee.subtitle2();
}
&.is-3 {
@include bee.subtitle3();
}
}
@@ -1,4 +0,0 @@
@import 'shared';
@import 'select';
@import 'input-textarea';
@import 'title';
@@ -1,46 +0,0 @@
@use 'sass:map';
// @use "@beeline/design-tokens/scss/tokens/globals";
@use '@beeline/design-tokens/scss/tokens/themes/light';
@use '@beeline/design-tokens/scss/tokens/themes/dark';
%input-textarea {
box-shadow: none;
border: 1px solid transparent;
color: map.get(light.$theme, 'color-text-active');
background: map.get(light.$theme, 'color-control-background');
&:hover {
border-color: map.get(light.$theme, 'color-border-focus');
}
.dark-theme & {
color: map.get(dark.$theme, 'color-text-active');
background: map.get(dark.$theme, 'color-control-background');
&:hover {
border-color: map.get(dark.$theme, 'color-border-focus');
}
}
&:focus,
&.is-focused,
&:active,
&.is-active {
box-shadow: none !important;
border-color: map.get(light.$theme, 'color-border-focus');
background: map.get(light.$theme, 'color-background-base');
.dark-theme & {
background: map.get(dark.$theme, 'color-background-base');
border-color: map.get(dark.$theme, 'color-border-focus');
}
}
}
.input {
@extend %input-textarea;
}
.textarea {
@extend %input-textarea;
}
@@ -1,48 +0,0 @@
@use 'sass:map';
@use '@beeline/design-tokens/scss/tokens/themes/dark';
@use '@beeline/design-tokens/scss/tokens/themes/light';
.select {
select {
border: 1px solid transparent;
&:focus,
&:active {
border: 1px solid map.get(light.$theme, 'color-border-focus');
background-color: map.get(light.$theme, 'color-background-base');
box-shadow: none;
}
}
&:not(.is-multiple):not(.is-loading)::after {
content: none;
}
&:focus,
&.is-focused,
&:active,
&.is-active {
select {
border: 1px solid map.get(light.$theme, 'color-border-focus');
background-color: map.get(light.$theme, 'color-background-base');
box-shadow: none;
}
.dark-theme & {
select {
border: 1px solid map.get(dark.$theme, 'color-border-focus');
background-color: map.get(dark.$theme, 'color-background-base');
box-shadow: none;
}
}
}
.dark-theme & {
color: map.get(dark.$theme, 'color-text-active');
& select {
color: map.get(dark.$theme, 'color-text-active');
background-color: map.get(dark.$theme, 'color-control-background');
}
}
}
@@ -1,11 +0,0 @@
@use 'sass:map';
@use '@beeline/design-tokens/scss/tokens/globals';
@use '@beeline/design-tokens/scss/tokens/themes/dark';
.label {
line-height: globals.$font-line-height-caption;
.dark-theme & {
color: map.get(dark.$theme, 'color-text-inactive');
}
}
@@ -1,14 +0,0 @@
@use 'sass:map';
@use '@beeline/design-tokens/scss/tokens/themes/dark';
.title {
.dark-theme & {
color: map.get(dark.$theme, 'color-text-active');
}
}
.subtitle {
.dark-theme & {
color: map.get(dark.$theme, 'color-text-inactive');
}
}
-8
View File
@@ -1,8 +0,0 @@
@use 'beeline';
@use 'bulma';
@use 'app';
.proto {
font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
color: #f55;
}
-21
View File
@@ -1,21 +0,0 @@
# Биллинг
Биллинг предназначен для управления финансовыми операциями в Beeline Cloud. В биллинге вы можете:
- контролировать счета;
- отслеживать платежи;
- анализировать потребление ресурсов.
## Разделы биллинга
### Счета
В этом разделе отображаются все выставленные счета, их статусы и суммы. Вы можете посмотреть детали каждого счета и скачать документы для бухгалтерии.
### Финансовый мониторинг
В этом разделе вы можете отслеживать движение средств, контролировать платежи и задолженности.
### Аналитика потребления
В этом разделе вы можете создавать отчеты и строить графики, чтобы отследить использование ресурсов за выбранный период.
View File
View File
-17
View File
@@ -1,17 +0,0 @@
# Аналитика потребления
В этом разделе вы можете отследить использование ресурсов в проектах. Это может помочь вам контролировать расходы на сервисы.
Вы можете:
- Узнать какие проекты потребляют больше всего ресурсов.
- Сравнить использование за разные периоды.
## Как пользоваться
1. В поле **Проект** выберите один или `все проекты`.
2. В поле **Сервис** укажите нужный сервис, например, **Виртуальные дата-центры на VMware**.
3. В поле Ресурсы выберите «Все ресурсы» или конкретный тип.
4. Установите период с помощью календаря.
После этого появится отчет. Если данных нет, попробуйте изменить период, выбрать другой проект или ресурс.
+37
View File
@@ -0,0 +1,37 @@
---
section_links:
- title: Счета
link: /finance/accounts.md
description: Просмотр счетов и оплата услуг Beeline Cloud онлайн (QR или Сбербанк Онлайн), получение документов за расчетный период в PDF
- title: Финансовый мониторинг
link: /finance/financial-monitoring.md
description: Анализ расходов за выбранный период и просмотр затрат по сервисам
- title: Анализ затрат
link: /finance/cost-analysis.md
description: Детализация расходов по сервисам и ресурсам, фильтрация, сравнение периодов и экспорт отчетов
- title: Бюджеты и уведомления
link: /finance/budgets.md
description: Установка бюджетов для проектов и сервисов, настройка уведомлений о приближении к лимиту
- title: Прогнозирование
link: /finance/forecasting.md
description: Оценка ожидаемых расходов и сигналы о возможном перерасходе
- title: Рекомендации
link: /finance/recommendations.md
description: Персонализированные советы по снижению расходов на облачные ресурсы
- title: Управление тегами
link: /finance/tags.md
description: Организация ресурсов с помощью пользовательских меток и кастомизированная отчетность
- title: Квоты и лимиты
link: /finance/quotas.md
description: Управление доступными ресурсами, установка ограничений и мониторинг потребления
---
# Финансы
Модуль **Финансы** позволяет отслеживать объем использованных ресурсов и анализировать расходы. В Beeline Cloud вы платите только за фактическое использование и время работы ресурсов.
В модуле можно:
- просматривать и оплачивать счета;
- контролировать траты по сервисам и проектам;
- анализировать, какие ресурсы используются и в каком объеме.
+83
View File
@@ -0,0 +1,83 @@
---
verified: false
note: Документация была написана по старому порталу. Текст требует проверки.
---
# Счета
В разделе **Счета** можно посмотреть все выставленные счета и оплачивать услуги Beeline Cloud. Счета формируются автоматически один раз в месяц для юридических лиц и индивидуальных предпринимателей, подключивших услуги Beeline Cloud. Для каждого расчетного периода доступны документы в формате PDF. Дата появления нового счета указана в верхней части страницы.
## Статусы счетов
Счет может иметь один из следующих статусов:
- **Ожидает оплаты** — счет сформирован и ожидает оплаты.
- **Просрочен** — срок оплаты истек, требуется оплата.
- **Закрыт** — счет оплачен и обработан.
## Просмотр счетов
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Перейдите в раздел **Финансы****Счета**.
3. Укажите расчетный период в верхней части страницы.
4. В таблице отобразятся все счета за выбранный период. Для каждого счета указаны:
- номер счета,
- дата выставления,
- расчетный период,
- сумма,
- статус оплаты.
## Просмотр деталей счета
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Перейдите в раздел **Финансы****Счета**.
3. Укажите расчетный период в верхней части страницы.
4. Нажмите на строку со счетом, чтобы открыть его карточку.
5. В карточке счета отображаются:
- номер счета,
- номер договора,
- дата выставления,
- срок оплаты,
- расчетный период,
- общая сумма по счету и НДС,
- банковские реквизиты получателя,
- контакты поддержки,
- таблица с детализацией услуг.
## Оплата счета
Если статус счета **Ожидает оплаты** или **Просрочен**, его нужно оплатить.
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Перейдите в раздел **Финансы****Счета**.
3. Откройте карточку нужного счета.
4. Нажмите **Оплатить**.
5. Выберите способ оплаты (QR или Сбербанк Онлайн) и завершите оплату.
После успешной оплаты статус счета изменится на **Закрыт**.
## Загрузка счета
1. Войдите в [личный кабинет](https://console.cloud.beeline.ru/).
2. Перейдите в раздел **Финансы****Счета**.
3. Откройте карточку счета.
4. В правом верхнем углу нажмите **Скачать PDF**.
Файл сохранится в формате PDF.
## Фильтрация счетов
В таблице счетов доступна фильтрация по:
- статусу оплаты,
- дате выставления,
- сумме.
Для этого используйте фильтры в верхней части таблицы. Таблица обновится автоматически.
## Аналитика по счетам
В разделе доступна визуализация данных об оплатах:
- распределение расходов по месяцам, проектам или сервисам,
- сравнение текущих расходов с предыдущими периодами.
+3
View File
@@ -0,0 +1,3 @@
# Бюджеты и уведомления
Раздел в разработке.
+112
View File
@@ -0,0 +1,112 @@
---
verified: true
---
# Анализ затрат
В разделе **Анализ затрат** можно отслеживать расходы на облачные ресурсы в режиме реального времени, анализировать их по различным параметрам, сравнивать с предыдущими периодами и экспортировать данные. Доступна детализация за день, неделю, месяц, квартал, год или произвольный период.
Вы можете использовать раздел, чтобы:
- узнать сколько потрачено на определенные сервисы за последний месяц;
- экспортировать отчет за определенный период в формате CSV для анализа в стороннем ПО;
- выявить тренды в динамике расходов и принять меры по снижению затрат.
## Просмотр общих расходов
1. Перейдите в раздел **Финансы****Анализ затрат**.
2. Перейдите на вкладку **Общие расходы**.
3. В верхней части страницы задайте фильтры:
- **Период**: задайте даты начала и окончания или выберите один из периодов на вкладке **Предустановленный**.
- **Гранулярность** — выберите шаг агрегации данных на графиках:
- **Договоры / Проекты**: выберите один или несколько проектов.
- **Сервис**: выберите один или несколько сервисов.
4. Отобразятся:
- сумма расходов за выбранный период.
- график с расходами за выбранный период.
- таблица с детализацией затрат по договорам, проектам, и сервисам.
В таблице для каждой записи указаны:
- договор
- проект
- сервис
- график динамики расходов
- средний расход (руб/час)
- текущий расход (руб/час)
- стоимость за использованный ресурс
## Просмотр расходов по сервисам
1. Перейдите в раздел **Финансы****Анализ затрат**.
2. Перейдите на вкладку **Расходы по сервисам**.
3. В верхней части страницы задайте фильтры:
- **Сервис**: выберите один или несколько сервисов.
- **Период**: задайте даты начала и окончания или выберите один из периодов на вкладке **Предустановленный**.
- **Гранулярность** — выберите шаг агрегации данных на графиках.
- **Договоры / Проекты**: выберите один или несколько проектов.
- **Инстансы**: выберите один или несколько инстансов.
- **Ресурс**: выберите один или несколько ресурсов.
4. Отобразятся:
- сумма расходов за выбранный период.
- график с расходами за выбранный период.
- таблица с детализацией затрат по договорам, проектам, сервисам и ресурсам.
В таблице для каждой записи указаны:
- договор
- проект
- сервис
- график динамики расходов
- средний расход (руб/час)
- текущий расход (руб/час)
- стоимость за использованный ресурс
## Детализация расходов
Наведите курсор на элемент графика или строку таблицы, чтобы увидеть подробные данные в подсказке — затраты по каждому сервису и общую сумму за период.
## Настройка графиков
### Столбчатая диаграмма
Вы можете настроить способ отображения и диапазон данных:
- **Группировка**: выберите способ отображения расходов: **По договорам**, **По проектам** или **По сервисам**.
- **Тип визуализации**: переключайтесь между столбчатой диаграммой и линейным графиком.
- **Диапазон**: сдвигайте границы полосы для выбора подпериода внутри заданного периода.
### Круговая диаграмма
У круговой диаграммы можно настроить только **Группировку**. Можно выбрать один из способов отображения расходов: **По договорам**, **По проектам** или **По сервисам**.
## Посмотреть историю расходов
1. Перейдите в раздел **Финансы****Анализ затрат**.
2. Перейдите на вкладку **Расходы по сервисам**.
3. В верхней части страницы задайте фильтры:
- **Сервис**: выберите один или несколько сервисов.
- **Период**: задайте даты начала и окончания или выберите один из периодов на вкладке **Предустановленный**.
- **Гранулярность** — выберите шаг агрегации данных на графиках.
- **Договоры / Проекты**: выберите один или несколько проектов.
- **Инстансы**: выберите один или несколько инстансов.
- **Ресурс**: выберите один или несколько ресурсов.
4. В нижней части страницы в подразделе **Детализация** перейдите на вкладку **История расходов**.
5. Отобразится таблица с детализацией затрат по договорам, проектам, сервисам и ресурсам. Для каждого ресурса указаны:
- **Кол-во**: объём потребленных ресурсов за период.
- **Ед. измерения** — единица тарификации.
- **Цена за ед.** — стоимость одной единицы в рублях.
- **Стоимость, ₽** — итоговая сумма за период.
Чтобы раскрыть детализацию по конкретному периоду, нажмите на строку с датами — отобразится список ресурсов с разбивкой по типам.
## Экспорт отчета
1. Перейдите в раздел **Финансы****Анализ затрат**.
2. Задайте нужные фильтры.
3. Нажмите кнопку **Экспорт** под графиками.
4. Файл сохранится на ваш компьютер.
Файл CSV можно открыть в Excel или другом редакторе для дальнейшего анализа.
+3
View File
@@ -0,0 +1,3 @@
# Финансовый мониторинг
Раздел в разработке.
+3
View File
@@ -0,0 +1,3 @@
# Прогнозирование
Раздел в разработке.
+3
View File
@@ -0,0 +1,3 @@
# Квоты и лимиты
Раздел в разработке.
+3
View File
@@ -0,0 +1,3 @@
# Рекомендации
Раздел в разработке.
+3
View File
@@ -0,0 +1,3 @@
# Управление тегами
Раздел в разработке.
+3
View File
@@ -0,0 +1,3 @@
# Аналитика потребления
Раздел в разработке.
+34 -12
View File
@@ -36,9 +36,9 @@ features:
- title: Мониторинг
icon: graph_up
link:
- title: Биллинг
- title: Финансы
icon: wallet
link:
link: /finance/about
- title: Безопасность и стандарты
icon: security
link: ''
@@ -100,6 +100,10 @@ services:
- title: MongoDB
description: В работе
icon: database
- title: PostgreSQL
description: Объектно-реляционная СУБД с открытым кодом, обеспечивающая высокую надёжность и масштабируемость
icon: database
link: /PaaS/PostgreSQL/PostgreSQL-index.md
- title: Аналитика
articles:
- title: Визуализация и анализ данных
@@ -107,28 +111,46 @@ services:
icon: graph_up
- title: Безопасность
articles:
- title: Межсетевой экран (NGFW)
description: В работе
- title: Cloud NGFW
link: /security/Cloud-NGFW/NGFW-index.md
description: Межсетевой экран для инспекции и фильтрации трафика на уровне приложений
icon: security
- title: Cloud NGFW F
link: /security/Cloud-NGFW-F/NGFW-F-index.md
description: Виртуальный аплаенс межсетевого экрана для исследования и фильтрации сетевого трафика
icon: security
- title: Cloud NGFW Pro
link: /security/Cloud-NGFW-Pro/NGFW-Pro-index.md
description: Межсетевой экран с IDS и потоковым антивирусом на базе отказоустойчивой инфраструктуры
icon: security
- title: Защита веб-приложений (WAF)
description: В работе
icon: security
- title: Защита серверов и рабочих мест
- title: Защита серверов и рабочих станций (EPP)
description: В работе
icon: security
- title: Защита устройств пользователей
- title: Управление мобильными устройствами (MDM)
link: /security/Cloud-MDM/MDM-index.md
description: Сервис централизованного управления корпоративными и личными мобильными устройствами сотрудников
icon: security
- title: Сканер уязвимостей (VS)
link: /security/Cloud-VS/VS-index.md
description: Сервис сканирования компьютеров и приложений на уязвимости
icon: security
- title: Обучение основам киберграмотности (SA)
link: /security/Cloud-SA/SA-index.md
description: Сервис для формирования у сотрудников навыков реагирования на угрозы информационной безопасности
icon: security
- title: Многофакторная аутентификация (MFA)
description: В работе
icon: security
- title: Сканер уязвимостей
- title: Защита электронной почты (SEG)
description: В работе
icon: security
- title: Курсы кибербезопасности
- title: Защита от DDoS
description: В работе
icon: security
- title: Многофакторная аутентификация
description: В работе
icon: security
- title: Фильтрация почтового трафика
- title: ГОСТ VPN
description: В работе
icon: security
- title: Виртуальное рабочее место
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More