szQocks, в другом месте у меня без условий было. просто useTranslation и потом вызов t("tr.key" + value). И тоже в билде таже ошибка проявлялась. В дев версии локально весь aggrid отрисовывался, хоть и очень медленно, а вот в билде нет.
И да, я сегодня игрался с разными вариантами, там в стеке проскакивало что то вроде
memoizeT
useTranslation
Я так думаю библиотека i18next там что то делает пытаясь минимизировать вызовы с одним и тем же ключем, что то несовместимое с жизнью aggrid. Мне самому не ясно. Может aggrid хуки не любит.
Главное, что работает, если убрать useTranslation и вызовы t().
WbICHA, да, это дев сервер, после билда. Если так запускать, локально, все работает, хоть и медленно. Ошибку то я понимаю, только в моем коде ничего такого нету. Проблема где то внутри useTranslation видимо. Если ее убрать из кода выше, заменить на фиксированные тексты вместо вызова t(), то все работает.
Думаю вот, как передать в компоненту эти тексты из вне. Значения то фиксированные.
mayton2019, хочу понять, как правильно сделать, что бы по фэншую было. А не как попало. Ведь не зря же там все генериками увешано, а не используются. Приходится Object приводить к нужному типу.
Я уже и копилоту и chatgpr и gemini скармливал, они сами не знают, что это такое.
Muskat12, да я не огсобо специалист, так знаю пару умных слов и применял их, что бы разбить большие таблицы на партиции.
Кстати подумалось. А может sqllite базу разбить на более мелкие? На каждого пользователя свою базу к примеру, или по месяцам. Или что там у вас критерием. Что то, что в каждом запросе участвует и поможет разбить таблицу на более мелкие. Тоже своеобразный горизонтальный шардинг. В postgres это делается практически из коробки, с sqlite надо будет вручную этим заниматься.
Ну или не прямо по каждому пользователю, а для начала на 26 по каждой букве алфавита. Или как они там еще пользователи могут по группам разбиться. По странам к примеру
Василий Банников, я искал в гугле, вроде часто его как integer определяют. Но я нашел в спринге CorrelationKey Класс. Он вообще byte[], так что наверное да, можно случайный UUID использовать. В спринге есть оказывается такая штука как ReplyingKafkaTemplate. Которая сама может генерировать corelationId, но это не точно. Возможно надо самому генератор задавать.
сергей кузьмин, у заказчика какие то свои, секьюрные соображения. Все 4хх должны быть к 400 приведены. Это же касается 5xx. Типа уменьшает риск сканирования, что ли? Я искал в интернете и не нашел ничего на этот счет.
Надесь 402 в данном случае он примет. Не хочется сильно в недра лезть.
сергей кузьмин, уже заработало. Я версию процессора JPAMetaModelEntityProcessor с 6.0.1 на 5.х.х поменял и сразу заработало. Мне кажется процессору не хватало какой то зависимости и он просто не грузился. А чего ему не хватало так и не выяснил.
Проблема в load balancer-е . Там будут сконфигурированы два пути 1. "/" -> мое next.js приложение с его /api/ и второй путь, существующий /api -> java backend. То-есть из браузера не достучаться до /api next.js приложения, так как запросы по /api срузу уходят на бэкенд. Придется писать какие то сложные правила. Поэтому в голову тоолько и приходит, подвесить приложение на /app и запросы на / редиректить на /app. Но могут возникнуть сложности с basePath. Надо пробовать.
Орхан Гасанлы, да, это аналог jwt токену, только самопальный. И да, в эндпоинте надо проверить аутентифицирован ли пользователь. Для этого для проверки полученный в куках токен надо показать аутентификационному серверу. Это уже все сделано, в WebFilter создаётся Prinzipal объект и проверяется токен.
Вопрос в том, как это все правильно интегрировать в spring webflux. Пока не нашел нормального туториала. Примеры часто с basic authentication, либо готовые oidc или jaas.
По ссылке что вы превели в начале, написано про Управляемые компоненты. Они отображают значение заданное аттрибутом "value". Неуправляемые сами хранят значение свое.
Так вот в моем первом варианте useState() было без параметра, потому val1 было изначально пустым - undefined. То есть значение value в компоненте value было тоже undefined и компонента считала, что она не контролируемая. А потом внезапно методом setVal1 устанавливалось значение val1 и получалось, что компонента input становилась управляемой. Потому и выводилось предупреждение
"Компонента меняет неконтролируемый input на управляемый"
Судя по всему в "лишнем" было что то нужное. Но так вам никто не поможет. Ни кода, ни примеров, ни ничего. Думаете кто то станет скачивать проект, удалять лишнее и гадать, что у вас там может быть?
Я думаю CORS проверяется браузером, это не ответ сервера с каким то кодом. Потому текст появляется в консоли, но отличить его не получится от других сетевых ошибок.
Вроде бы это даже замысел такой, что бы код сайта не мог сканировать сеть и искать уязвимости в сети. В спеках было вроде даже написано, что любая сетевая ошибка fetch, должна обрабатываться как просто ошибка сети.
callbackUrl это ссылка на ваше приложение. К примеру, что бы аутентифицироваться, вы перенаправляете вызов на https://auth.api/?callbackUrl=https://mycool.app/ и передаете ему ссылку, куда должен быть сделан редирект после аутентификации. Это может быть главная страница, а может быть страница, где вы поздравляете с успешной аутентификацией.
Но код то исполняется в Node.js. И в коде у вас написано "document.querySelectorAll", потому и не находит. Вам видимо надо использовать page.evaluate, ято бы исполнить этот код в контексте веб страницы, а не в конексте скрипта, который вы запускаете.
И да, я сегодня игрался с разными вариантами, там в стеке проскакивало что то вроде
memoizeT
useTranslation
Я так думаю библиотека i18next там что то делает пытаясь минимизировать вызовы с одним и тем же ключем, что то несовместимое с жизнью aggrid. Мне самому не ясно. Может aggrid хуки не любит.
Главное, что работает, если убрать useTranslation и вызовы t().