Play Framework の View に React + TypeScript を組み込み、 sbt + Vite.js ですべてコンパイルできるようにしてみた

Play Framework アプリに React を組み込んでみる機会がありました。 ただ、Reactを使って SPA にするのではなく、まずは ルーティングは Play Framework (バックエンド)が担当 Play Framework の View上で React が動く Scriptタグでコンパイルした React …

Scala + Play Framework 2.8 系で、設定ファイル(application.conf)の内容を読み込む

Scala + Play Framework 2.8系で、設定ファイル (application.conf) の内容を読み込む機会があったため、メモを残します。 目次 環境 方法 動作確認 ソースコード 環境 Scala 2.13.6 Play Framework 2.8.8 方法 Play Framework 2.8系では Controllerで play.…

Scala + Play Framework なアプリを作る前段として、 sbt new した後のコードを読んで分かったこと/分からなかったことをまとめてみた

Scala + Play Framework を試してみようと、公式ドキュメントの Getting Started の Already know a bit about Play? に従ってみました。 Getting Started with Play Framework ただ、試してみていくうちに 分かったこと 分からないこと をまとめたくなった…

Next.js に CASL React を組み込んで権限管理をしてみた

アプリケーションの権限設計について調べていたところ、以下の記事に出会いました。 アプリケーションにおける権限設計の課題 - kenfdev’s blog 権限設計で考えなければいけないことがまとまっていて、とても参考になりました。ありがとうございました。 上…

Next.js と express-openid-connect を使った Relying Party を TypeScript 化してみた

前回、Next.js と express-openid-connect を使った Relying Party を書きました。 Next.js と express-openid-connect を使って、認証が必要/不要な各ページを持つ Relying Party を作ってみた - メモ的な思考的な 上記の記事では JavaScript で実装してい…

Next.js と express-openid-connect を使って、認証が必要/不要な各ページを持つ Relying Party を作ってみた

前回、Next.js + express-openid-connect を使って、全てのページでOpenID Connectによる認証が必要な Relying Party を作りました。 Next.js + express-openid-connect を使って、バックエンドで OpenID Provider と通信する Relying Party を作ってみた - …

Next.js + express-openid-connect を使って、バックエンドで OpenID Provider と通信する Relying Party を作ってみた

以前、Railsを使って OpenID Connectの Relying Party (RP) を作りました。 Railsとdoorkeeper-openid_connectやOmniAuth を使って、OpenID Connectの OpenID Provider と Relying Party を作ってみた - メモ的な思考的な そんな中、Next.jsを使う機会があっ…

doorkeeper製 OAuth 2.0 のAuthorization Serverにて、色々な状態のアクセストークンを使って Introspection エンドポイントの挙動を確認してみた

2021/08/26 00:42 追記 ご指摘いただいた内容に合わせ、記事を修正しました。 主な修正点は以下の通りです。 タイトルをOAuth2.0な文脈へ変更 環境に Resource Server を追加し、Resource Serverの中で Authorization Server の Introspection エンドポイン…

ヒドいぎっくり腰になったので、経過を記録してみた

最近、ヒドいぎっくり腰(急性腰痛症)になりました。 過去に何回かぎっくり腰をやった時は、しばらく安静にしていることで、いずれもその日のうちに動けるようになっていました。 それに比べて今回のはヒドく、人生初の救急車や入院を経験し、各方面にご迷惑…

Railsとdoorkeeper-openid_connectやOmniAuth を使って、OpenID Connectの OpenID Provider と Relying Party を作ってみた

OAuth2やOpenID Connectの理解を深めようと思い、 OAuth徹底入門 セキュアな認可システムを適用するための原則と実践(Justin Richer Antonio Sanso 須田 智之 Authlete, Inc.)|翔泳社の本 Auth屋さんの書籍 【電子版】雰囲気でOAuth2.0を使っているエンジ…

ブログのデザインを調整してみた

「昔やったことがある気がする」という時に、自分のブログを検索することがよくあります。 ただ、2014年からブログのデザインを変更していないせいか、なんとなく読みづらく感じていました。 振り返ってみると、2014年当時のブログ環境からは 開発環境がWind…

Railsで、Action Mailerの callback・interceptor・observer の実行タイミングを調べてみた

RailsのAction Mailerには callback 3 Action Mailer Callbacks | Action Mailer Basics — Ruby on Rails Guides interceptor 7.1 Intercepting Emails | Action Mailer Basics — Ruby on Rails Guides observer 7.2 Observing Emails | Action Mailer Basic…

Rails + Active Adminで、Active Admin向けのテストコードを request spec で書いてみた

Active AdminのControllerに手を加えた際、テストコードがほしくなりました。 Wikiを見たところ、controller specでの実装でした。 Testing your ActiveAdmin controllers with RSpec · activeadmin/activeadmin Wiki ただ、現在では controller spec よりも…

Active AdminのControllerでは、Strong Parameters のメソッド名は permitted_params だった

Rails の Controller で Strong Parametersを使う場合、 ***_params というプライベートメソッドを定義しています。 一方、Active Admin の Controller で Strong Parameters を使う時は、デフォルトだとどんな名前になるのかを調べた時のメモです。 目次 環…

Rails + Active Adminで、Active Admin Controllerのcreate/update/destroyをオーバーライドする

Railsでは、Active Adminを使うことで管理者画面を容易に作ることができます。 Active Admin | The administration framework for Ruby on Rails そんな中、Active AdminでModelの作成・更新・削除を行うと同時に、Modelとは関係ないAPIを呼ぶ処理を追加した…

Railsで、同一のbefore_actionを別オプションで複数定義した場合、最後の定義が有効になる

Railsで before_action などのフィルタでは、 only などのオプションを追加することで対象のActionを制限できます。 8 フィルタ | Action Controller の概要 - Railsガイド そんな中、同一の before_action を別オプションで複数定義してしまったことがあっ…

Rails + 名前空間付きのActionMailerを使う場合に、件名をi18nのロケールファイルで指定してみた

Railsガイドによると、Action Mailer の件名は mailメソッドに件名が渡されなかった場合、Action Mailerは既存の訳文の利用を試みます。「<mailer_scope>.<action_name>.subject」というパターンでキーが構築されます。 4.6 Action Mailerメールの件名を訳文に置き換える | Rails 国際化</action_name></mailer_scope>…

Railsで、DeviseのMailerにControllerから値を渡す方法を調べてみた

Deviseの recoverable confirmable lockable の各モジュールでは、各種確認のためにメールを送信します。 メール送信時に使われるのが Devise::Mailer にある reset_password_instructions などのメソッドです。 https://github.com/heartcombo/devise/blob/…

Railsにて、Controllerのactionにクエリストリング付でリダイレクトする

RailsでControllerのactionにリダイレクトする時は redirect_to action: :index のように書くものの、クエリストリング付でリダイレクトする時はどうすれば良いか調べた時のメモ。 環境 Rails 6.1.4 対応 redirect_to の引数を def move_with_field redirect…

Railsで、うっかりトランザクションをネストしたところロールバックされなくなったため、requires_newとjoinableを調べてみた

Railsで、うっかりトランザクションをネストしてロールバックされなくなったので、requires_newとjoinableを調べた時のメモを残します。 なお、調査時のソースコードが長くなってしまったことから、一部のみ記載しています。 もしよろしければ、Github上のソ…

Railsにて、コントローラのアクションが長くて見通しが悪くなったため、Formオブジェクトとフィルタを使うようにした

Railsを書いている中で、コントローラのアクションが長くなってしまい、コードの見通しが悪くなったことがありました。 そのような時はFormクラスとフィルタを使うのが良いと同僚に教わったため、リファクタリングした時のメモを残します。 目次 環境 仕様に…

Rails6.1 + Devise 3.8.0 で、Deviseのデフォルトの挙動を確認してみた

Deviseを使うと認証まわりの機能をRailsに組み込むのが容易です。 ただ、「そういえばDeviseにある各モジュールのデフォルトの挙動はどんな感じだろう」と思ったため、調べた時のメモを残します。 目次 環境 検証するためのRails + Deviseアプリを作成 アプ…

Devise 4.8.0 でメールテンプレートを変更したい場合、カスタムメーラーの template_path ではなく headers_for をオーバーライドする

Rails + Deviseにて、Devise標準のメール受信確認用メールテンプレートを差し替えたいことがありました。 そこで Devise の Wiki How To: Use custom mailer · heartcombo/devise Wiki に従い、 % bin/rails g devise:views users ... create app/views/user…

Rails 6.1 + Devise 4.8.0 で、ルーティングから一部のdeviseモジュールの URI Pattern を削除する

Rails + Deviseでは、ModelにDeviseのモジュールを組み込むと、自動的に routes へ URI Pattern が追加されます。 例えば、 Rails.application.routes.draw do root to: 'home#index' devise_for :users end な routes.rb の時、DeviseのModelが class User …

Rails6.1で、セッションをキャッシュとは別のmemcachedへ保存する

Rails6.1でセッションをキャッシュとは別のmemcachedへ保存しようとした時、色々調べたことをメモに残します。 目次 環境 デフォルトのセッションストレージ Railsアプリの作成 動作確認 キャッシュの保存先を変更するための準備 フラグメントキャッシュを使…

PyCharmで、anyenv + nodenv で構築した ReactとDjango REST Frameworkの両方をデバッグしてみた

今までPyCharmでDjango REST framework(以下、DRF)のデバッグを行ったことはありました。 そんな中、以前 React + TypeScript + DRFでアプリを作りました。 ただ、ReactとDRFをPyCharmだけでデバッグしたことがなかったため、どのように設定すればデバッグで…

rake -T では表示されないRakeタスクについて

Rakefileの中に定義されているRakeタスクを確認しようと、 rake -T したところ表示されないRakeタスクがあったため、メモを残します。 環境 rake 13.0.2 原因 ヘルプに書いてありました。 rake -T では desc がないRakeタスクは表示されないとのことでした。…

Delayed Job を使って実行する処理を、RubyMineでデバッグをする

Rails + Delayed Job な環境で、Delayed Job を使って実行する処理がありました。 例えばこんな感じです。 # Delayed Job で実行 # call_heavy_api中で外部APIを呼んでいるが、その処理が重いとする Task.delay.call_heavy_api({ foo: 'bar' }) そんな中、De…

React + TypeScript + Django REST frameworkでToDo管理アプリを作ってみた

先日、大岡由佳さんの「りあクト! 第3.1版 (2020年12月26日 初版第1刷発行)」を読みました。書籍では理由や経緯などが書かれており、とてもためになりました。ありがとうございました。 りあクト! TypeScriptで始めるつらくないReact開発 第3.1版【Ⅰ. 言語…

Python + openpyxlを使って、月末日を除く五十日始まりのカレンダーを作成してみた

Pythonの標準モジュール calendar では、カレンダーを作るための便利な関数が用意されています。 calendar --- 一般的なカレンダーに関する関数群 — Python 3.9.4 ドキュメント 例えば、 monthcalendar で年月を指定すると週ごとに日付リストが得られるため…