Веб-интерфейс Galleon доступен по адресу инстанса (https://<GALLEON_HOST>).
В нём пользователь просматривает содержимое репозиториев,
скачивает и загружает артефакты и управляет своим профилем.
Интерфейс доступен на русском и английском языках.
Язык переключается списком «Язык интерфейса» в шапке,
а на странице входа — на карточке входа.
Выбор запоминается в браузере: он не привязан к учётной записи
и не переносится на другой браузер или устройство.
При первом заходе язык определяется по настройкам браузера.
Сообщения сервера, например текст ошибки при отказе, остаются английскими.
Вход
Чтобы войти, введите на странице входа «Имя пользователя» и «Пароль» и нажмите «Войти». После входа открывается раздел «Обзор».
Без входа доступен только просмотр — и только если администратор включил анонимный доступ. Ссылки «Загрузить» и «Настройки» появляются в шапке после входа.
Просмотр содержимого
Раздел «Обзор» показывает карточки доступных репозиториев (имя, формат, тип). Содержимое репозитория отображается деревом (модель компонентов и ассетов описана в разделе Репозитории и форматы):
- папки (▪) — группируют содержимое: группы Maven, пространства имён пакетов, образы;
- компоненты (◆) — версии пакетов и теги образов;
- индексные файлы (▤) — служебные файлы, которые Galleon генерирует сам (например,
maven-metadata.xml).
В репозиториях Docker (OCI) содержимое образа разложено по группам:
tags/ — теги, manifests/ — манифесты, на которые эти теги ведут
(несколько тегов одного манифеста показываются одной строкой).
Слои и конфигурации собраны в отдельную ветку blobs/ в корне репозитория:
они принадлежат репозиторию, а не образу, и один и тот же слой
могут использовать несколько образов.
При выборе узла справа открывается панель деталей:
- у компонента — координаты, метаданные формата (описание и зависимости пакета, платформы и слои образа) и список ассетов;
- у ассета — размер, тип содержимого, контрольные суммы (SHA-256, SHA-1, MD5, SHA-512), даты, а для proxy-репозиториев — адрес источника и срок действия кеша.
Среди дат есть «Последнее скачивание» — когда файл скачивали в последний раз. Значение «Никогда» означает, что его не скачивали ни разу, а «Не отслеживается» — что скачивания не учитываются: так помечены слои образов контейнеров, потому что они общие для всех образов репозитория.
Кнопка «Скачать» скачивает ассет. Кнопка «Показать ещё» подгружает следующую страницу длинных списков.
Кнопки «Удалить компонент» и «Удалить» у отдельных ассетов требуют привилегии delete.
При политике записи DENY удаление отклоняется независимо от привилегий:
такой репозиторий доступен только на чтение.
Удаление необратимо; при удалении последнего ассета компонент удаляется автоматически.
Для образов контейнеров действуют свои правила удаления —
они описаны на странице Docker (OCI).
Загрузка
Раздел «Загрузка» загружает файлы в hosted-репозитории форматов Maven, npm, RubyGems, PyPI и raw. Форма подстраивается под формат выбранного репозитория:
- Maven — координаты (
groupId,artifactId,version), файлы с полямиclassifierиextension, флагgenerate-pom; - npm и RubyGems — только файл пакета (
.tgzили.gem): имя и версия читаются из его метаданных; - PyPI — файлы дистрибутивов (wheel или sdist); имя и версию можно не указывать — они читаются из метаданных;
- raw — целевой каталог (
directory), имя файла (filename) и сам файл.
Для загрузки нужна привилегия add на репозиторий.
Репозитории форматов Go, Docker (OCI) и Cargo принимают публикации только штатными клиентами
(Форматы).
Профиль
Страница «Профиль» открывается из меню аватара и содержит секции:
- Роли — назначенные вам роли;
- Учётная запись — данные учётной записи; для локальных пользователей редактируются кнопкой «Изменить»;
- Пароль — смена пароля кнопкой «Смена пароля» (требуется текущий пароль);
- Токен пользователя — токен для клиентов и CI (Учётные данные);
- Сессии — активные сессии: текущую можно завершить («Выйти»), любую из остальных — отозвать («Отозвать»), а все, кроме текущей, — разом («Завершить другие сессии»).
Раздел «Настройки» в шапке предназначен для администрирования — он описан в руководстве администратора.