前からTransactionの挙動について調べてるが、remote_apiのトランザクション処理は実はproduction環境そのものとは違った件で既に書いたとおり、どうもproduction環境とdev環境では実装がかなり違うっぽい。
その調査はやってる(まだ途中)んだけど、その経過で「要するにproduction環境の実装がコードで読めればすぐ解決すんじゃね?」とか思うよね?
思ったからどういうことはありませんが、production環境でもinspectモジュールが生きてますね。ふへ。
あとSDKのコードにも見える google3.apphosting 以下のモジュールは built-in module らしいですよ。
あわせて読みたい:http://code.google.com/intl/ja/appengine/terms.html
7.2. You may not (and you may not permit anyone else to): (a) copy, modify, create a derivative work of, reverse engineer, decompile or otherwise attempt to extract the source code of the Google App Engine Software or any part thereof, unless this is expressly permitted or required by law, or unless you have been specifically told that you may do so by Google, in writing (e.g., through an open source software license);
ざっと訳:7.2 以下のことを行ってはいけない(また他人に許可してもいけない): (a) Google App Engineソフトウェアおよびそれに類するソフトウェアのコピー、改変、派生物の作成、リバースエンジニアリング、逆コンパイルならびにソースコードの展開。(ただし特に法により許可された場合、ならびに書面によりGoogleから特に許可を受けた場合を除く。)
にしても
あらゆるリバースエンジニアリングや動作への割込みが禁止されるならapiproxy_stubを乗っ取ってProtocolBufferの中身をのぞくのもマズくなっちゃうし、そのへんは匙加減でも何かあるのかなあ。
難しい世の中ですね。
管理系への割込みもダメらしい
ついでに見付けた以下の条項も貼っておく。
2.3. You agree not to (a) access (or attempt to access) the administrative interface of the Service by any means other than through the interface that is provided by Google in connection with the Service, unless you have been specifically allowed to do so in a separate agreement with Google,
ざっと訳:2.3 (a) Googleによりサービスに接続するために用意された方法以外では、サービスの管理層へのあらゆる意味でのアクセスを行わないこと、また行おうとしないこと。(ただしGoogleから別条項により特に許可された場合を除く。)
うーん、インデックス生成とかをコントロールしようとするのもマズいってことになっちゃわないかコレ。