v0.4.0 [ManualMigrationRequired]
破壊的変更:
Ackがネイティブ要素になりました
今までconcurrent.worldではAckの概念をCharacterへのAssociationによって実装していましたが、これらがネイティブオブジェクトへと変更されました。
API GET /api/v1/message/:id
の返却データの変更
今まではmessageをgetすると全てのAssociationが含まれた巨大なレスポンスが返されていましたが、これが「認証付きGETの場合、本人がつけたAssociationのみを返す」という仕様に変更されました。
追加:
新しいネイティブ要素としてAckの追加
あるEntityがどのEntityを評価しているのかの指標としてAckオブジェクトが作れるようになりました。
これをそのままいわゆる「フォロー」などの概念と紐づけるかはアプリケーションに委ねられます。
concurrent本体としては今後ユーザーのトラストレベルの自動計算等に活用される予定です。
Associationにvariantフィールドを追加
特定のAssociationをフィルターしやすくするためのバリエーションフィールドとしてvariantを追加しました。署名オブジェクトに含めます。
APIの追加
-
GET /api/v1/message/:id/associations (?: schema, variant)
特定idのmessageに付与されているassociationの配列(schema, variantでフィルター可能) -
GET /api/v1/message/:id/associationcounts (?: schema)
特定のidのmessageに付与されているassociationの数(デフォルトでschema別, schemaを指定するとvariant別) -
GET /api/v1/entity/:id/acker
特定のentityのack一覧 -
GET /api/v1/entity/:id/acking
特定のentityの被ack一覧 -
POST, DELETE /api/v1/entities/ack
ackの作成・削除
修正:
- クエリしたタイムラインにオフラインのドメインが含まれていた場合結果がエラーとなっていた問題の修正
- ドメイン同士のwebsocket接続を監視して切断された場合は再接続を試みるように
マイグレーション:
concurrent.worldではemoji reactionのassociationにvariantとしてimageURLが指定されていることが想定されるようになったため、既存に作られたオブジェクトからvariantを生成してあげる必要が発生しました。
apiサーバーアップデートの自動マイグレーションでassociationテーブルにvariantカラムが生成された後、
以下のSQLによる対応が必要です。
update associations set variant = payload->'body'->>'imageUrl' where schema = 'https://raw.githubusercontent.com/totegamma/concurrent-schemas/master/associations/emoji/0.0.1.json';