Search
Write a publication
Pull to refresh
-5
0

Пользователь

Send message

Интеграция платформ через Keycloak: SSO и JWT в действии

Level of difficultyMedium
Reading time34 min
Views3.5K

В крупных компаниях с множеством платформ, например, интерфейсом интернет-магазина и системой обработки данных, часто требуется настроить доступ между системами через единый вход (SSO). Эта статья рассматривает задачу: обеспечить доступ из фронт-системы (reports-frontend) к API отчётов (reports-api) через Keycloak, чтобы JWT-токен содержал роль report_user. В контексте e-commerce это можно представить как интерфейс магазина, где менеджеры запрашивают отчёты о продажах, а Keycloak управляет аутентификацией.

Кому будет полезно?

Аналитики: Узнаете, как составлять заявки (например, в Jira) на настройку Keycloak, координировать с командами и проверять JWT в DevTools, чтобы избежать ошибок, таких как отсутствие роли в токене.

Разработчики: Познакомитесь с примером кода для React-фронтенда и Node.js-бэкенда, реализующим OIDC и PKCE.

Архитекторы: Поймёте, как Keycloak поддерживает SSO, масштабируемость (через PostgreSQL или Active Directory) и безопасность (PKCE, HTTPS).

Что внутри?

Теория: Объясняем SSO, OpenID Connect (OIDC), компоненты Keycloak (realms, хранилища, PKCE) и как JWT с ролью report_user обеспечивает доступ.

Практика: Показываем проект с React (reports-frontend), Node.js (reports-api) и Keycloak, запущенный через Docker Compose. Код включает realm-export.json, App.tsx, server.js, ReportPage.tsx.

Аналитика: Рассказываем, как аналитик формирует заявки на настройку Keycloak и координирует работу с админами, разработчиками и DevOps.

Практика SSO с Keycloak и JWT

Путеводитель по Ktor JWT auth на стороне сервера

Level of difficultyMedium
Reading time10 min
Views966

Документация Ktor по server-jwt неполна. Если необходимо сделать что-то за рамками «Hello world», придется лезть в исходники и городить костыли. Какой-то консистентности и предсказуемости ждать не стоит, возможно, не обошлось без заговорщиков.

Статья покроет необходимую базу для работы с JWT и убережет от множества подводных камней.

Читать далее

Разрабатываем полноценную игру целиком при помощи ИИ (LLMDD, часть 1)

Level of difficultyEasy
Reading time52 min
Views8K

Откройте для себя революционный подход к разработке софта: как с помощью больших языковых моделей и агентного кодирования довести свой проект от идеи до рабочего прототипа в одиночку. В первой части серии вы узнаете, какие инструменты выбрать, как настроить среду разработки и составить эффективный дизайн-документ, чтобы LLM превратилось в надёжного исполнителя. Объясняю всё на примерах.

Читать далее

Настраиваем CI/CD Android-проекта, часть 2. Запуск Android-тестов

Level of difficultyMedium
Reading time7 min
Views1.1K

Всем привет, меня зовут Кирилл и я Android-разработчик в Scanny.

В прошлой статье, мы описали то, как будет выглядеть наш CI/CD, научились запускать статический анализатор кода, выполнять Unit-тестирование, собирать различные Build Flavors и отправлять их в нашу Telegram-группу.

В этой статье я покажу, как можно подключить и запустить Android-тесты в рамках CI/CD на примере Marathon Labs и Firebase Test Lab.

Читать далее

Новый подход к безопасному управлению состояниями в Kotlin-приложениях

Reading time20 min
Views3.1K

Вот уже несколько лет я занимаюсь разработкой высокопроизводительных, полностью асинхронных, реактивных, мультиплатформенных приложений. За это время я успел наткнуться на несколько довольно тонких и трудно отлаживаемых проблем с управлением состояниями.

В этой статье я хотел бы поделиться с вами своим опытом, который поможет вам сэкономить множество часов и нервных клеток, и предложить новый подход к управлению состояниями, который лично я никогда раньше не встречал и который навсегда избавит вас от этих проблем.

Читать далее

Orbit MVI с сахаром: вкусный фреймворк для однородной архитектуры

Level of difficultyEasy
Reading time11 min
Views2.7K

Привет, $username! Меня зовут Анастасия, я junior-android-разработчик в МТС Диджитал. Пойдем, расскажу тебе про фреймворк OrbitMVI. Узнала я о нем от своего лида: он делегировал мне задачу заменить наш самодельный Redux на Orbit, чтобы в нашем приложении архитектура стала удобнее и однороднее.

Сначала я пошла читать документацию, что из себя представляет Orbit MVI и с чем его едят. Затем попробовала его на небольшом тестовом проекте и поняла: это интересный, удобный и понятный фреймворк. В этом посте я покажу, что в «Орбите» есть полезного и как его можно использовать.

Читать далее

Градиентный бустинг с CATBOOST (часть 3/3)

Reading time8 min
Views27K

В предыдущих частях мы рассматривали задачу бинарной классификации. Если классов более чем два, то используется MultiClassification, параметру loss_function будет присвоено значение MultiClass. Мы можем запустить обучение на нашем наборе данных, но мы получим те же самые результаты, а обучение будет идти несколько дольше:

Читать далее

Повторяю стекломорфизм в Android на AGSL шейдерах (лучше бы я этого не делал)

Level of difficultyMedium
Reading time8 min
Views12K

Повторяю стекломорфизм в Android на AGSL шейдерах (лучше бы я этого не делал)

Изображение... искажения... размытие... о чём вы подумали? Первое, что приходит в голову – ✨ ШЕЙДЕРЫ ✨

Читать далее

Skia — высокопроизводительная 2D графика для React Native

Reading time5 min
Views9.4K

Пользователям Flutter не понаслышке знаком такой проект как Skia. Он является движком для рендеринга всего что мы видим на экране Flutter. С помощью Skia можно рисовать очень сложные элементы интерфейса да и в целом любые 2D сцены с поддержкой плавной анимации и различных эффектов. Так почему бы не взять это на вооружение, подумали ребята из Shoppify и выпустили React Native Skia - библиотеку позволяющую использовать Skia в экосистеме React Native.

Читать далее

Летнее чтение на английском: небанальные книги для каждого уровня и советы, которые помогут полюбить чтение

Level of difficultyEasy
Reading time4 min
Views21K

Привет! Я Маша Фадеева, методист и преподаватель курсов английского языка в Практикуме. В этой статье хочу поделиться своими любимыми книгами и комиксами на английском — теми, которые с удовольствием читала сама, а теперь рекомендую студентам и вам.

Для удобства все книги распределены по уровням — ориентируйтесь на свой, но не бойтесь пробовать чуть сложнее или проще, если история вас зацепила. А чтобы чтение не превратилось в очередное «надо», я помогу советами, как втянуться, не перегореть и сделать чтение на английском частью жизни. 

В конце статьи бонус: подборка бесплатных онлайн-ресурсов, где можно найти ещё больше книг, журналов и комиксов для любого уровня.

Читать далее

Анатомия Отчуждения — Капитализм как Фабрика Неврозов и Пути Побега

Level of difficultyMedium
Reading time10 min
Views2.5K

(Продолжение статьи «Системный абсурд: KPI, отчуждение и кризис смыслов»)

Про личный опыт. Философию, природу человека, менеджмент и эффект для экономике. Букв много

Читать далее

Морфинг геометрических фигур с SDF в фрагментных шейдерах GLSL и визуализацией на Jetpack Compose

Level of difficultyHard
Reading time8 min
Views1.4K

Создание динамичных визуальных эффектов для мобильных приложений требует от разработчиков не только творческого подхода, но и соблюдения требований к производительности. Одной из наиболее эффективных техник для реализации плавных переходов и трансформаций объектов является использование шейдеров, которые позволяют выполнять сложные параллельные вычисления на GPU. Это не только обеспечивает плавность анимаций, но также может снизить нагрузку на CPU, делегируя ресурсоемкие задачи графическому процессору в определенных сценариях, что особенно важно для мобильных устройств с ограниченными ресурсами.

В данной статье будет рассмотрен пример реализации плавной анимации морфинга геометрических фигур с использованием SDF (Signed Distance Functions) и GLSL для графического рендеринга.

Читать далее

Как можно использовать шейдеры в Android View и как Android View может использовать шейдеры

Reading time17 min
Views5.8K

Для полноценной работы с динамическими элементами пользовательского интерфейса, которые используют тени, фильтры в реальном времени для фото или видео, или адаптивный пользовательский интерфейс и освещение, недостаточно использовать только Canvas. Было бы куда лучше, если бы у нас в распоряжении было что-то помощнее. Раньше мы могли использовать RenderScript, но поддерживается ли он сейчас?

В этой статье я расскажу как использовать стандартные GLSL шейдеры OpenGL в вашем пользовательском view, которое является наследником класса Android View (android.view.View). Я предлагаю вам использовать это решение, если вы работаете над чем-нибудь из нижеперечисленного:

Читать далее

Гайд по архитектуре приложений для Android. Часть 5: слой данных

Reading time22 min
Views18K

Перевод обновлённого гайда Android по архитектуре приложений. Это — заключительная часть: рассказываем про слой данных.

Читать далее

Гайд по архитектуре приложений для Android. Часть 3: cобытия UI

Reading time10 min
Views10K

Перевод обновлённого гайда Android по архитектуре приложений. Это — третья часть из пяти: рассказываем про события UI.

Читать далее

Открываем Konfeature, нашу open-source библиотеку для удобной работы с Feature Flags

Reading time8 min
Views2.3K

Привет! Это Саша Таболин — старший android-разработчик в red_mad_robot. Мы создали открытую библиотеку Konfeature для оптимизации работы с Feature Flags и хотим поделиться нашей разработкой.

Читать далее

Автоматизация проверки стиля кода с помощью KtLint в Android проекте

Level of difficultyEasy
Reading time3 min
Views498

Современная разработка программного обеспечения требует не только написания функционального кода, но и обеспечения его качества, надежности и безопасности.
Для обеспечения этого во многих командах по-прежнему существует Code Review. По моему мнению в 90% случаев это абсолютно бесполезная трата времени и сил разработчиков команды. Code Review это рудимент, который изжил себя. Я не утверждаю, что Code Review должен исчезнуть - принцип и подход должны измениться.
Ручная организация Code Review ведет к деградации продуктивности и взаимоотношений внутри команды. Очень часто Code Review превращается в способ самоутверждения, эмоциональной разрядке одного из участников команды за счет других. Комментарии часто бывают противоречивыми и контр продуктивными.
Как этого избежать?
Ответ – полностью автоматизировать этот процесс.

Одним из ключевых инструментов для достижения этой цели является статистический анализ кода - метод автоматизированной проверки исходного кода без его выполнения.

Я всю свою практику участвовал в командах, где Code Review было ручным и каждый участник команды ставил approve, либо оставлял комментарий. Думаю, так происходит и сейчас во многих командах. Качество такого Review низкое и трудно быть по-настоящему объективным.

Мне повезло участвовать в большом стартапе и начать проект самостоятельно. И в моем проекте я решил покончить с Code Review.

Что мне было необходимо? Нужен был инструмент который бы приводил код к единому стилю и избавил меня и других участников команды от необходимости проверять стиль кода. Сюда входит правила расстановки новых строк, именования методов, отступы и тд. Необходимо чтоб инструмент подсвечивал места где стиль не соблюдается и исправлял автоматически такие места.

Читать далее

Стратегическое партнёрство Kotlin и Spring

Level of difficultyEasy
Reading time4 min
Views5K

Команда Spring АйО перевела новость о стратегическом партнёрстве Kotlin и Spring. Полная null-безопасность, официальные обучающие материалы, мощная рефлексия и выразительный DSL — звучит многообещающе.

Читать далее

FCM для Android и Backend на Kotlin

Level of difficultyEasy
Reading time5 min
Views1.7K

Как доставлять информацию на устройства через Google-сервисы или как удаленно заставить приложение отправить уведомление пользователю?

Читать далее

Структурированная генерация в LLM

Level of difficultyMedium
Reading time10 min
Views4.1K

Привет. Меня зовут Андрей Соколов, я руководитель команды LLM в AI VK, которая обучает и дорабатывает модели, а потом помогает другим командам интегрировать их в свои продукты. И сегодня я расскажу про такое направление в LLM, как структурированная генерация. 

Читать далее
1
23 ...

Information

Rating
Does not participate
Location
Россия
Registered
Activity