[CouchDB][CouchApp] ログインとフィードの登録は完了

Railsっぽく3つ+1つ用意しました。

ソースは http://relax.webjourney.org:8080/_utils/document.html?relax-reader-development/_design/app の当たり。
自分のCouchDBにインストールしたい場合はapp-onlyをレプリケーションで持って行けばいいと思います(データもくっついてきますが)。ただし、正しく使うにはCouchDBのlocal.iniでadminユーザーを追加しておく必要があるかと。もう少しできたらgithubにあげる予定。

guest/password でログインできます。ただし、URLにタグをつけて登録できるだけで、まだ何もしません。どのタイミングでクロールするか、考え中。URLの登録時点でexternal processをキックするか、cronでモニターするか、あるいは両方か。

なんにせよ、データのバリデーションの段階(validate_doc_update.js)のCouchDB JavaScript内では、URIにアクセスして検証することができないので、フィードが登録されるとは限らない、、、まぁ、フィードじゃなかった場合ははてなアンテナに登録して踏み台にすればいいかと思っていたりもします。なんちゅう車輪の再生産だ、という話はあるけれど。

ブラウザのBasic認証実装の罠?で、ログアウトが正しく実装できない件があってw、ログアウトして、再度ログインすると同じユーザーでログインすることになります(ログアウトは実質クッキーの削除しかしていないため)。完全ログアウトするにはアプリでログアウトしてブラウザを閉じる!(おかげでデバッグがすごく面倒)。

それにしても、JavaScript でステートフルなアプリケーションを書くのは結構しんどいなぁー。ちょっと、VB時代に戻ってしまって、グローバル変数使いすぎ、なのでリファクタリング必須っ。

そういえば、http://guest:password@relax.webjourney.org:8080/_config/admins/{ユーザー名} に対して、パスワードをリクエストボディに含めて、HTTP PUT するとユーザー追加できます。当然、DELETEすればユーザーの削除もできちゃうと思いますが(CouchDBは現在 admins というロールしか存在しないので、全てのユーザーがなんでもできるw)。