kickflow Tech Blog

株式会社kickflowの開発チームによるブログ

JavaScriptで文字列の長さを正しくカウントする

文字列の長さをカウントするのは難しい こんにちは、CTOの小林です。 JavaScriptで文字列の長さをカウントする際、特にサロゲートペアや合字を含む場合には注意が必要です。この記事では、String.length、[...str].length、およびIntl.Segmenterを使用して文…

Active Storageのダイレクトアップロードのパフォーマンスチューニング

こんにちは。エンジニアの森本です。 kickflowでは、申請するチケットに対してファイルを添付することができます。これらをActive Storage のダイレクトアップロードを使って実現しています。 以前からファイルを大量に添付したチケットを申請すると、タイム…

kickflowでのRow Level Security導入: 成功事例と実装ガイド

kickflowでのRow Level Security導入事例と実装ガイド。データセキュリティ強化の具体例を紹介。

Elasticsearchのインデックス切り替えを無停止で行えるようにしました

こんにちは。エンジニアの森本です。 テキストでの全文検索はどのような仕組みを利用されていますか? kickflowでは、全文検索エンジンとしてElasticsearchを使っています。これまでは、1つのインデックスで検索を行っていたため、マッピングの変更時にダウ…

Nuxt 3への移行がもうすぐ終わりそうです

こんにちは、CTOの小林です。年々歳をとるにつれて、1年がどんどん短く感じるようになってきました。12月なんて体感で3日くらいしかないような気がします。 「師走」ということで、Stable Diffusionで生成した「走る師匠」の画像 kickflowではこの1年は通常…

Rails / PostgreSQL環境での連番の実装方法

こんにちは。株式会社kickflow・プロダクト開発本部の小本です。 今回は連番の実装方法についてです。

「JSON Schemaを知っている」人のための今どきJSON Schemaの紹介記事

最近はティラノサウルス科恐竜には羽毛があったとするのが定説(本文には関係ありません) こんにちは。株式会社kickflow・プロダクト開発本部の小本です。 最近、「設定をJSONファイルとしてエクスポート・インポートする機能」を実装する際にJSON Schemaを…

Kaigi on Rails 2023に参加してきました

こんにちは、エンジニアの森本です。 今回は先日開催された Kaigi on Rails 2023に参加してきたのでレポートを書きたいと思います。 Kaigi on Rails 2023は「初学者から上級者までが楽しめるWeb系の技術カンファレンス」 をコンセプトとして2020年から開催さ…

HerokuにLibreOfficeをインストールしてExcelをPDFに変換する

こんにちは、CTOの小林です。 kickflowにはExcel形式(.xlsx)で帳票出力する機能がありますが、これをPDF形式での出力に対応したいと思い調査しました。 kickflowではインフラにHerokuを使用しているため、HerokuでExcelをPDFに変換する方法を紹介します。

elsaticsearch-railsを使うのをやめた話

こんにちは、CTOの小林です。kickflowでは検索基盤としてElasticsearchを利用しています。kickflowのバックエンドにはRailsを採用しており、以前はElasticsearchの統合にelasticsearch-railsという公式gemを使用していたのですが、これを使用しなくなったと…

セキュリティチェックシートに効率的に回答する

こんにちは、CTOの小林です。 SaaS事業を展開している会社では、セキュリティチェックシートは避けて通れない存在です。セキュリティチェックシートは、導入企業(つまりお客様側)がシステムのセキュリティ評価に必要な情報を収集するための書類です。 弊社…

kickflowを支える技術スタック(2022年10月版)

こんにちは、CTOの小林です。株式会社kickflowではクラウドワークフローのkickflowというサービスを運営しています。今日は、このkickflowを支える技術スタックについてご紹介したいと思います。kickflowの開発環境に興味のある方や、これから新規サービスを…