[quote="Den Brown"]есть пара вопросов[/quote]
Я к сожалению или к счастью работал только в bitbucket и gitlab
githab чисто как склад чегото своего, чтобы просто не потерялось
Аналогичная ситуация. Почему то все серьезные клиенты сидят на bitbucket. Хотя почему это "почему" - это продукт Atlassian который интегрируется с другими типа Jira.
А что за вопросы? Ты излагай. Даже хорошо поставленный вопрос без ответов это уже половина ответа. Уже не раз замечал что начинаешь писать развернутый вопрос, а ответ приходит в процессе
[quote="Maxim Elets"]Я к сожалению или к счастью работал только в bitbucket и gitlab[/quote]
Аналогичная ситуация. Почему то все серьезные клиенты сидят на bitbucket. Хотя почему это "почему" :smiley: - это продукт Atlassian который интегрируется с другими типа Jira.
[quote="Den Brown"]есть пара вопросов[/quote]
А что за вопросы? Ты излагай. Даже хорошо поставленный вопрос без ответов это уже половина ответа. Уже не раз замечал что начинаешь писать развернутый вопрос, а ответ приходит в процессе :party:
вопрос в общем то про авторизацию Орга в скрипте
как я понимаю, у нас есть только один "законный" способ это сделать - это через JWT
но я уже забыл, как этот JWT создавать и прочее, где то нужно найти статью
я знаю, что есть еще плагины для sfdx вроде sfpowerkit, у которого есть возможность авторизации через user/password, что много проще. Но такому плагину не доверишься заходить в Прод по user/password, так что без реанимации знаний про JWT авторизацию мне уже не обойтись
вопрос в общем то про авторизацию Орга в скрипте
как я понимаю, у нас есть только один "законный" способ это сделать - это через JWT
но я уже забыл, как этот JWT создавать и прочее, где то нужно найти статью
я знаю, что есть еще плагины для sfdx вроде sfpowerkit, у которого есть возможность авторизации через user/password, что много проще. Но такому плагину не доверишься заходить в Прод по user/password, так что без реанимации знаний про JWT авторизацию мне уже не обойтись
Не работал с sfdx + JWT
но вот эта статья выглядит очень понятно
https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_jwt_flow.htm
Надо садиться и пробовать :smile:
и как ты авторизуешь Орг в Pipeline? через плагины?
[quote="Den Brown"][quote="Dmitry Shnyrev"]Не работал с sfdx + JWT[/quote]
и как ты авторизуешь Орг в Pipeline? через плагины?[/quote]
поделюсь тем что я писал для гитлаба
[code]
кто успел тот успел[/code]
Не работал с sfdx + JWT
и как ты авторизуешь Орг в Pipeline? через плагины?
поделюсь тем что я писал для гитлаба
До этого делается connected app, генерируется сертификат и потом по сертификату, ключикам из апы и логинам паролям авторизуется орг
в моем примере, код которые отвечает за деплой просто принимает переменные, которые определяются в зависимости от веток и условий
[quote="Maxim Elets"][quote="Den Brown"][quote="Dmitry Shnyrev"]Не работал с sfdx + JWT[/quote]
и как ты авторизуешь Орг в Pipeline? через плагины?[/quote]
поделюсь тем что я писал для гитлаба
До этого делается connected app, генерируется сертификат и потом по сертификату, ключикам из апы и логинам паролям авторизуется орг
в моем примере, код которые отвечает за деплой просто принимает переменные, которые определяются в зависимости от веток и условий
все сделано, но sfdx auth:jwt:grant не работает на ubuntu
такая ошибка:
secretOrPrivateKey must be an asymmetric key when using RS256
как я понимаю проблема здесь:
--jwtkeyfile server.key
но не понятно в чем
файл пишется echo $(serverkey) >> ./server.key
может проблема, что он загружается в переменную одной строкой без форматирования
все сделано, но sfdx auth:jwt:grant не работает на ubuntu
такая ошибка:
[i]secretOrPrivateKey must be an asymmetric key when using RS256[/i]
как я понимаю проблема здесь:
[i]--jwtkeyfile server.key[/i]
но не понятно в чем
файл пишется [i]echo $(serverkey) >> ./server.key[/i]
может проблема, что он загружается в переменную одной строкой без форматирования
ничего не понятно
это было на Azure DevOps Pipeline,
на Github Actions все получилось сделать и пройти авторизацию, использую фрагменты твоего скрипта,
это было на Azure DevOps Pipeline,
на Github Actions все получилось сделать и пройти авторизацию, использую фрагменты твоего скрипта,
а то я уже начал терять надежду и терпение :smile:
secretOrPrivateKey must be an asymmetric key when using RS256
По ходу у тебя проблема с server.key ты по ходу его не правильно сгенерил Ты точно по этой инструкции сделал? https://developer.salesforce.com/docs/at ... cert.htm И ubuntu тут не при чем, это обычный ssl - он работает везде одинаково ты просто генеришь ключ и сертификат (точно в этих определениях не силен). Если конкретно делал по этой инструкции (шаг в шаг) и не работает, то мне уже самому любопытно попробовать. Я работал с JWT но не для sfdx а для JSForce, но смысл там один и тот же. У меня завелось все с первого раза.
[quote="Den Brown"]secretOrPrivateKey must be an asymmetric key when using RS256[/quote]
По ходу у тебя проблема с server.key
ты по ходу его не правильно сгенерил
Ты точно по этой инструкции сделал?
https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_key_and_cert.htm
И ubuntu тут не при чем, это обычный ssl - он работает везде одинаково
ты просто генеришь ключ и сертификат (точно в этих определениях не силен).
Если конкретно делал по этой инструкции (шаг в шаг) и не работает, то мне уже самому любопытно попробовать.
Я работал с JWT но не для sfdx а для JSForce, но смысл там один и тот же. У меня завелось все с первого раза.
может проблема, что он загружается в переменную одной строкой без форматирования
А! Ну или проблема в том как он используется (сорян, не дочитал). Вообще тут дебаги в логи в помощь. надо от простого к сложному, сначала локально воспроизвести, а потом уже заливать во всякие CI/CD и смотреть разницу если не работает.
[quote="Den Brown"]может проблема, что он загружается в переменную одной строкой без форматирования[/quote]
А! Ну или проблема в том как он используется (сорян, не дочитал).
Вообще тут дебаги в логи в помощь.
надо от простого к сложному, сначала локально воспроизвести, а потом уже заливать во всякие CI/CD и смотреть разницу если не работает.
Навеяло воспоминания - у нас была на одном проекте сборка CD под python проект. Там код брался из git, на который навешивался Google Cloud Build, который собирал конфиг и запускал Docker контейнер, в котором проект компилился и потом билдился на лету и запускался Terraform скрипт который все деплоил по разным местам (миграция базы данные, апдейт и рестарт инстансов). А потом еще еще и Kubernates прикрутили который тоже поднимался со своим сгенеренным конфигом через Terraform. Целых 4 слоя через которые пробрасывались переменные, в том числе и ключи с сертификатами. Вот это была жесть. Вот там логи читать приходилось по полдня чтобы вкурить на каком уровне отвалилось. А! Там еще было ограничение на длину переменных, приходилось разбивать на несколько, пробрасывать через слои и потом через файловую систему собирать в одну строку. Вот это была дичь! После этого я сильно полюбил решения типа Heroku
Навеяло воспоминания - у нас была на одном проекте сборка CD под python проект. Там код брался из git, на который навешивался Google Cloud Build, который собирал конфиг и запускал Docker контейнер, в котором проект компилился и потом билдился на лету и запускался Terraform скрипт который все деплоил по разным местам (миграция базы данные, апдейт и рестарт инстансов). А потом еще еще и Kubernates прикрутили который тоже поднимался со своим сгенеренным конфигом через Terraform. Целых 4 слоя через которые пробрасывались переменные, в том числе и ключи с сертификатами. Вот это была жесть. Вот там логи читать приходилось по полдня чтобы вкурить на каком уровне отвалилось. А! Там еще было ограничение на длину переменных, приходилось разбивать на несколько, пробрасывать через слои и потом через файловую систему собирать в одну строку. Вот это была дичь!
После этого я сильно полюбил решения типа Heroku :smiley::rolling::party:
Вот это была дичь!
После этого я решил вернуться на SF и вспоминаю эти дни как страшный сон
[quote="Dmitry Shnyrev"]Вот это была дичь![/quote]
После этого я решил вернуться на SF и вспоминаю эти дни как страшный сон :rolling:
По ходу у тебя проблема с server.key
тот же server.key нормально работает в Github Actions, но там при настройке секрета используется multi-line input, поэтому содержание server.key копируется как есть и его форматирование не ломается. это мое предположение
[quote="Dmitry Shnyrev"]По ходу у тебя проблема с server.key[/quote]
тот же server.key нормально работает в Github Actions, но там при настройке секрета используется multi-line input, поэтому содержание server.key копируется как есть и его форматирование не ломается. это мое предположение
По ходу у тебя проблема с server.key
тот же server.key нормально работает в Github Actions, но там при настройке секрета используется multi-line input, поэтому содержание server.key копируется как есть и его форматирование не ломается. это мое предположение
ну тут я не могу ничего подсказать, никогда не работал с Github Actions
[quote="Den Brown"][quote="Dmitry Shnyrev"]По ходу у тебя проблема с server.key[/quote]
тот же server.key нормально работает в Github Actions, но там при настройке секрета используется multi-line input, поэтому содержание server.key копируется как есть и его форматирование не ломается. это мое предположение[/quote]ну тут я не могу ничего подсказать, никогда не работал с Github Actions
тот же server.key нормально работает в Github Actions, но там при настройке секрета используется multi-line input, поэтому содержание server.key копируется как есть и его форматирование не ломается. это мое предположение
Вспомнил кстати лайфхак для подобных ситуаций - когда надо сохранить сложную строку в локальных переменных, когда возможна похожая ситуация что ее ломает. К примеру тот же JSON вроде может сломать. Берем переменную, кодируем ее в base64 строку, запихиваем в переменную окружения. Там где надо берем эту переменную и декодируем обратно из base64. Особенность base64 что это крайне примитивная строка без каких либо спецсимволов. И ее уже ничего не испортит. Я такой лайфхак часто использовал и не только для переменных откружения. Через тот же GET параметр можно какой нить сложный объект переслать, и безопасно и в глаза не брасается. Вот только что-то сразу не вспомнил чтобы посоветовать
[quote="Den Brown"]тот же server.key нормально работает в Github Actions, но там при настройке секрета используется multi-line input, поэтому содержание server.key копируется как есть и его форматирование не ломается. это мое предположение[/quote]
Вспомнил кстати лайфхак для подобных ситуаций - когда надо сохранить сложную строку в локальных переменных, когда возможна похожая ситуация что ее ломает. К примеру тот же JSON вроде может сломать.
Берем переменную, кодируем ее в base64 строку, запихиваем в переменную окружения.
Там где надо берем эту переменную и декодируем обратно из base64. Особенность base64 что это крайне примитивная строка без каких либо спецсимволов. И ее уже ничего не испортит. Я такой лайфхак часто использовал и не только для переменных откружения. Через тот же GET параметр можно какой нить сложный объект переслать, и безопасно и в глаза не брасается. Вот только что-то сразу не вспомнил чтобы посоветовать :sad:
история продолжается
оказывается у клиента on premise версия Github, в которой есть только Windows для выполнения скриптов
сейчас пытаюсь переделать линукс скрипт под windows
PS: вроде все тоже, только установка sfdx идет одной строкой через npm, но зато устанавливается целых пять минут
история продолжается :sad:
оказывается у клиента on premise версия Github, в которой есть только Windows для выполнения скриптов
сейчас пытаюсь переделать линукс скрипт под windows
PS: вроде все тоже, только установка sfdx идет одной строкой через npm, но зато устанавливается целых пять минут
Попробую вариант предложить. А если через Docker попробовать? Ему пофиг под какой системой работать. В докер просто нужный образ используем. Может есть готовый с sfdx. Ну или брать образ и линуксом и дальше все также. Вообще думаю у тебя точно должен быть вариант с docker а там все проще простого и пофиг какая система. Ну или под той же виндовс докер поставить и дальше опять же все просто.
Попробую вариант предложить.
А если через Docker попробовать? Ему пофиг под какой системой работать. В докер просто нужный образ используем. Может есть готовый с sfdx. Ну или брать образ и линуксом и дальше все также. Вообще думаю у тебя точно должен быть вариант с docker а там все проще простого и пофиг какая система. Ну или под той же виндовс докер поставить и дальше опять же все просто.