Takahiro Yonei

Takahiro Yonei

dance with heroku vibes / 2

heroku vibesの画面操作を見るに、プロンプトを入力しつつ1つのherokuアプリを自動生成していくように見える。 1つのアプリで完結するようなものであれば、それでも良さそうに思える。 しかし、複数のherokuアプリを組み合わせてシステムを構築することもあるので、その場合はどうサポートしてくれるだろうか? プログラマの視点からすると、アプリの自動生成については...あまり優位性が見出せない。 pipelineを使いたいとかgithubとの連携とかあるので、自分でやった方が良いかなぁと思う。その辺りはむしろheroku MCPサーバの方がやりやすいかもしれない。 ボンヤリとしたアイディアから、構成や使用するadd onをいい感じに提案してくれる壁打ち相手として使えそうだろうか?と思う。 プログラマでない人からすれば、herokuアプリを自動生成してくれるのは助かる場面はありそうだ。 ただの想像だけど、salesforceを拡張する機能としてheroku applinkを使ったherokuアプリを自動生成する...みたいな場面であれば、プログラマでない人には有益かもしれない

By Takahiro Yonei

heroku

dance with heroku vibes / 1

噂のheroku vibesをいじってみる。 現在の制約について 私が利用できるHerokuアドオンは以下に限定されています: * Heroku Postgres (essential-0) * Heroku Key-Value Store (mini) * Heroku AppLink (free) 「Heroku Managed Inference and Agents」というアドオンについては、私の現在の環境では利用可能なアドオンリストに含まれていないため、直接プロビジョニングすることができません。 heroku mia を使って何かできないかな、と思って質問してみたが、まだまだ成長段階にあるようで使えないらしい。 勝手にadd on追加されても困るし、確かにその辺りのガードレールは必須だろう。

By Takahiro Yonei

heroku

Heroku AppLinkの使い方(DML)

Heroku AppLinkの使い方のサンプル第2弾でも。 ※サンプルコードは Node.js 版のSDKを使ったものに限定です。SDKのリポジトリは https://github.com/heroku/heroku-applink-nodejs を参照してください。 1. レコードの作成 ※もちろん添付ファイルを作成することも可能 import * as salesforcesdk from "@heroku/applink"; async function sample () { const sdk = salesforcesdk.init(); // ※Authorized Userを使います const org = await sdk.addons.applink.getAuthorization(process.env.HEROKU_APPLINK_CONNECTION_NAME); //---------------------------------------------------------- // (1)レコードを作成 //

By Takahiro Yonei

Heroku AppLink

Heroku AppLinkの使い方 (クエリ)

Heroku AppLinkのサンプルコードがもう少し欲しいところ...で、まずはクエリのサンプルでも備忘録として残してみる ※サンプルコードは Node.js 版のSDKを使ったものに限定です。SDKのリポジトリは https://github.com/heroku/heroku-applink-nodejs を参照してください。 1. 1つのオブジェクトだけクエリする import * as salesforcesdk from "@heroku/applink"; const sfdc_id = 'xxxxx'; async function sample () { const sdk = salesforcesdk.init(); // ※Authorized Userを使います const org = await sdk.addons.applink.getAuthorization(process.env.HEROKU_

By Takahiro Yonei

Heroku AppLink

Heroku AppLinkで特定のAPIはサービスメッシュをバイパスしたい

Heroku AppLinkを導入すると、Heroku Routerからやってくるリクエストを全てサービスメッシュが一旦受け取って、認証チェックを行う。 構築しているHerokuアプリケーションが、Salesforceからのリクエストのみを受け付けるもの、という前提があるならそれで問題ない。 しかし、特定のAPIは別のWebサービスからのリクエストを処理したい...という場合には非常に困るのである。 例えば、一般公開しているECサイトの商品データを返すAPIと、Salesforceからしか受け付けないAPIを、1つのアプリケーションに同居させたい場合がこれにあたる。 一般公開しているECサイトは、当然ながらSalesforceの認証情報なんぞ持っていない。したがって、そんなサイトからのリクエストはサービスメッシュが拒否してしまい、サイトに商品データを表示することができなくなる。 こんな場合、Herokuアプリケーション側で特定のURLパターンではサービスメッシュをバイパスするよう設定することができる(ようになった)。 1. バイパス用の設定ファイルを設置する Heroku

By Takahiro Yonei

Heroku AppLink

Dig into the Heroku AppLink (not a deep dive) - サービスメッシュについて

Heroku AppLinkを導入するにあたり、heroku-applink-service-mesh をビルドパックとして追加するようドキュメントに明記されている。 https://devcenter.heroku.com/articles/getting-started-heroku-applink-agentforce#install-the-heroku-applink-buildpack このサービスメッシュの役割について少し触れてみよう。 サービスメッシュは、Heroku RouterとHerokuアプリケーション(自前で作るアプリケーション)の間に入って、HerokuアプリケーションのAPIを守る役割を持っている。 大まかに言えば以下のような流れとなる。 1. 外部からのリクエストが、Heroku Routerにやってくる 2. Heroku Routerがweb dynoに向かってリクエストを転送する 3. web dynoに組み込まれたサービスメッシュが、リクエスト内容をチェックする 4. リクエスト内容がokであれば、Herokuアプリケーションにリク

By Takahiro Yonei

heroku

Heroku リクエストタイムアウトはアプリケーション側にも忘れずに

(本記事はしくじり案件です) Heroku Router は、dynoとの接続確立後30秒の間に何かしらレスポンスを受け取らなかった場合、リクエストを強制終了してしまう。そのため、Herokuアプリケーション側では30秒以内に処理を完了させておく必要がある。 処理自体を30秒以内に完了させるよう実装することは非常に重要なことではあるが、もう1つ大事なポイントがドキュメントに記載されている。 それはアプリケーション側でも、30秒(もしくはそれ以下)のタイムアウト処理を実装する必要がある、ということだ。 Request Timeout | Heroku Dev CenterLearn about the behavior of the Heroku routers, connection termination and connection timeouts.Dev Center 接続が強制終了されると、クライアントに対してエラーページが発行されます。リクエストを処理していた Web dyno はそのまま放置され、応答を送信できなくてもリクエストの処理を続行します。 その後、後続

By Takahiro Yonei

Salesforce

Salesforce Integrationライセンスで標準オブジェクトを扱うには

システム連携用に「Salesforce Integration」ライセンスを使う場合の備忘録として。 「Salesforce Integration」ライセンスでプロファイルを用意しても、そのプロファイルのオブジェクト設定に「取引先」「取引先責任者」などの標準オブジェクトが一覧に表示されない。 したがって、システム連携用のユーザーに割り当てても、そのままだと標準オブジェクト(取引先、取引先責任者など)にアクセスできない。 以下の記事がその対応策となる。 Salesforce HelpSalesforce Salesforce API インテグレーション権限セットライセンスは、Salesforce インテグレーションユーザーライセンスの機能を拡張し、標準のシステム管理者プロファイルで一般的に使用できるのと同じユーザー権限やオブジェクト権限の多くを提供します。 [設定] の [組織情報] ページで Salesforce API インテグレーション権限セットライセンスを確認して検討し、何が使用可能になるのかを理解します。「Minimum Access - API Only Int

By Takahiro Yonei