Загрузка данных


Ты работаешь только в проекте:

/Users/23865613/IdeaProjects/untitled/zadanie2/source_project

Аудит размещения integration-point завершён.

Подтверждено:

- все пять реальных точек взаимодействия относятся к ФП SberGeo.СНЛ;
- непосредственный родитель подтверждён страницей:
  /functionalSubsystem/236500/interactionPoints;
- structured_meta_writer.py ошибочно копирует одно и то же временное
  поддерево integration-point одновременно на уровень АС и ФП;
- объекты уровня АС являются межуровневыми дублями.

Нужно минимально исправить размещение интеграционных объектов.

Не запускать браузер.
Не обращаться к META.
Не запускать run_exporter.py.
Не выполнять Git-команды.
Не переходить к атрибутам.
Не изменять иерархию АС, ФП, модулей, подмодулей и ТК.
Сохранить безопасную временную пересборку.

======================================================================
1. РЕЗЕРВНЫЕ КОПИИ
======================================================================

Создай:

scripts/structured_meta_writer.py.before-parent-level-fix

projects/SNL/meta.before-parent-level-fix

Если имя уже существует, добавь timestamp.

Если потребуется изменить regenerate_reports.py, создать:

scripts/regenerate_reports.py.before-parent-level-fix

======================================================================
2. ИСПРАВИТЬ АРХИТЕКТУРУ ВРЕМЕННОЙ СБОРКИ
======================================================================

Сейчас одно общее временное поддерево:

build_dir/integration-point

копируется и в каталог АС, и в каталог ФП.

Так делать нельзя, потому что состав объектов на разных уровнях может
отличаться.

Создай отдельные временные поддеревья:

build_dir/as/integration-flow
build_dir/as/integration
build_dir/as/integration-point

build_dir/fp/integration-flow
build_dir/fp/integration
build_dir/fp/integration-point

Каждый объект должен попадать только в поддерево подтверждённого
непосредственного родителя.

Запрещено копировать один общий каталог объектов сразу на два уровня.

======================================================================
3. РАЗМЕЩЕНИЕ ПЯТИ ТОЧЕК
======================================================================

Следующие точки разместить только в:

projects/SNL/meta/as/SberGeo/fp/SberGeo.СНЛ/integration-point/

1. СНЛ REST-API SCIM
2. СНЛ REST-API публикация событий аудита
3. СНЛ IAM Proxy ALPHA
4. СНЛ IAM Proxy SIGMA
5. ТчВ СНЛ Sowa Sigma2Alpha

Ожидаемый результат уровня ФП:

integration-point/
├── README.md
├── СНЛ_REST-API_SCIM/
│   └── README.md
├── СНЛ_REST-API_публикация_событий_аудита/
│   └── README.md
├── СНЛ_IAM_Proxy_ALPHA/
│   └── README.md
├── СНЛ_IAM_Proxy_SIGMA/
│   └── README.md
└── ТчВ_СНЛ_Sowa_Sigma2Alpha/
    └── README.md

Фактическая безопасная нормализация имён может незначительно отличаться.

======================================================================
4. УРОВЕНЬ АС
======================================================================

В:

projects/SNL/meta/as/SberGeo/integration-point/

не должно быть дочерних каталогов этих пяти точек.

Оставить только индексный:

projects/SNL/meta/as/SberGeo/integration-point/README.md

Он должен содержать:

- заголовок «Точки взаимодействия АС SberGeo»;
- пояснение, что отдельные точки непосредственного уровня АС
  в доступной локальной выгрузке не подтверждены;
- перечень проверенных источников;
- при необходимости ссылку на раздел точек ФП SberGeo.СНЛ,
  но не представлять точки ФП как объекты АС.

Не оставлять заглушку «Данные не найдены» без пояснения.

======================================================================
5. INTEGRATION И INTEGRATION-FLOW
======================================================================

Для integration и integration-flow сейчас подтверждено ноль реальных объектов.

На уровнях АС и ФП должны существовать только индексные README.md:

as/SberGeo/integration-flow/README.md
as/SberGeo/integration/README.md

as/SberGeo/fp/SberGeo.СНЛ/integration-flow/README.md
as/SberGeo/fp/SberGeo.СНЛ/integration/README.md

В них указать:

- реальные отдельные объекты не распознаны;
- какие локальные источники проверены;
- заголовки страниц не были приняты за объекты.

Дочерних ложных каталогов быть не должно.

======================================================================
6. REPLACE_TARGETS
======================================================================

Обновить replace_targets так, чтобы каждая цель получала своё поддерево:

- real_as_dir / integration-flow
  ← build_dir / as / integration-flow

- real_as_dir / integration
  ← build_dir / as / integration

- real_as_dir / integration-point
  ← build_dir / as / integration-point

- real_fp_dir / integration-flow
  ← build_dir / fp / integration-flow

- real_fp_dir / integration
  ← build_dir / fp / integration

- real_fp_dir / integration-point
  ← build_dir / fp / integration-point

Не использовать один и тот же src для уровня АС и ФП.

Сохранить атомарную замену:

1. построить временные поддеревья;
2. проверить;
3. заменить только шесть управляемых каталогов;
4. при ошибке не менять текущую структуру.

======================================================================
7. ПРОВЕРКА РОДИТЕЛЯ
======================================================================

В коде должна быть явная функция или логика определения уровня:

- AS;
- FP;
- unresolved.

Не определять уровень по тому, что имя АС встречается в полном пути.

Для пяти точек доказательство уровня ФП:

/functionalSubsystem/236500/interactionPoints

Если родитель объекта не подтверждён:

- не копировать объект на оба уровня;
- поместить его в отчёт о неразмещённых объектах;
- не создавать произвольную связь.

======================================================================
8. ОБНОВИТЬ ОТЧЁТ
======================================================================

Обновить:

output/INTEGRATION_OBJECTS_REPORT.md

Добавить таблицу:

| Объект | Тип | Подтверждённый родитель | Уровень | Созданный путь | Основание |
|---|---|---|---|---|---|

Для пяти точек уровень должен быть FP.

Также добавить раздел:

## Межуровневые дубли

Указать, какие дубли уровня АС были удалены и почему.

======================================================================
9. ПРОВЕРКИ
======================================================================

Выполнить:

python -m py_compile run_exporter.py scripts/*.py

python scripts/regenerate_reports.py

Не запускать run_exporter.py.

Показать:

find projects/SNL/meta/as/SberGeo/integration-point \
  -maxdepth 3 -print | sort

find projects/SNL/meta/as/SberGeo/fp/SberGeo.СНЛ/integration-point \
  -maxdepth 3 -print | sort

Проверить:

1. На уровне АС:
   - только integration-point/README.md;
   - 0 дочерних объектов.

2. На уровне ФП:
   - один индексный README.md;
   - ровно 5 дочерних каталогов;
   - каждый содержит README.md.

3. Нет одинакового canonical_key на двух уровнях.

4. Нет:
   - unknown;
   - названий страниц как объектов;
   - двух каталогов SIGMA;
   - пустых дочерних каталогов;
   - неработающих ссылок в индексах.

5. Повторный запуск:

python scripts/regenerate_reports.py

должен дать тот же набор путей без появления новых дублей.

======================================================================
10. ПОКАЗАТЬ РЕЗУЛЬТАТ
======================================================================

Покажи полный текст:

- AS integration-point/README.md;
- FP integration-point/README.md;
- README одной восстановленной точки;
- output/INTEGRATION_OBJECTS_REPORT.md.

Покажи таблицу:

| Уровень | Integration-flow | Integration | Integration-point |
|---|---:|---:|---:|
| АС | 0 | 0 | 0 |
| ФП | 0 | 0 | 5 |

Индексные README.md в количества реальных объектов не включать.

======================================================================
ФИНАЛЬНЫЙ ОТЧЁТ
======================================================================

# Этап 1.4 — устранение межуровневых дублей

## Изменённые файлы

## Причина дублей

## Новая структура временной сборки

## Подтверждённый родитель пяти точек

## Удалённые объекты уровня АС

## Итог уровня АС

## Итог уровня ФП

## Результат py_compile

## Первый запуск regenerate_reports.py

## Повторный запуск regenerate_reports.py

## Проверка идемпотентности

## Оставшиеся проблемы

В конце явно указать:

- уровень АС: 0 реальных integration-point;
- уровень ФП: 5 реальных integration-point;
- межуровневых дублей: 0.

После выполнения остановиться.

Не переходить к атрибутам.