Repository navigation
upstream: 2026.10.1 - #15
Open
sync-agent[bot] wants to merge 695 commits into
Open
sync-agent[bot] wants to merge 695 commits into
sync-agent[bot] wants to merge 695 commits into
Conversation
* fix * fix * refactor
…v#17740) * fix(frontend): MkLightboxを上下方向にスワイプして閉じることができないことがある問題を修正 * fix * fix * fix * fix * fix * fix * fix * review fixes
* fix(backend): multipart apiのエラー時に一時ディレクトリが消えない問題を修正 * fix * fix * Update Changelog
* deps: update dependencies * update changelog-checker lockfile * deps: update typescript to v7 * fix: replace tsgo -> tsc * fix: replace tsgo -> tsc * deps: update other major dependencies, downgrade typescript for frontend-stack
…宛先に含まれていても正しく認識されない問題を修正 (misskey-dev#17736) * fix(frontend): ensure checkMissingMention considers mentions with host for local users * docs(changelog): update changelog
…/WidgetBirthday (misskey-dev#17746) * fix(frontend): use instant postform for createNoteFromTheFile/gallery/WidgetBirthday * docs(changelog): update changelog --------- Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
* fix: reply note visibility check * docs(changelog): update changelog * fix: wrong operator * docs(changelog): fix insert position and wording --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
…dev#17748) * enhance: OTel設定時、JSONログにtrace_id, span_id, trace_flagがつくように * fix
* refactor(gh): CI用スクリプトをpackageとして整理 * fix * fix * fix * fix * fix * fix * fix * remove old scripts * migrate * refactor 1 * refactor 2 * fix comment * fix * fix * fix * fix * remove vite-node from changelog-checker * fix lint * fix * refactor * update deps * fix * spec: rename packages
…ey-dev#17757) * refactor(gh): unify frontend diagnostics * refactor(gh): unify frontend diagnostics markdown rendering * docs(gh): restore frontend diagnostics comments * wip * fix * refactor: 呼称をbase/headに統一 * tweak * Update types.ts * fix
…skey-dev#17756) Signed-off-by: Soli0222 <github@str08.net>
* fix: プロフィールセットアップダイアログでボタンがフッターより手前に描画される問題を修正 MkButton.vue が全ボタンに position:relative + z-index:1 を持たせているため、 .pageFooter (position:sticky, z-index未指定=auto) と重なった際にpageMain側の ボタン(アイコン変更・保存等)がフッターより手前に描画されてしまっていた。 先のpadding-bottom修正だけでは、実機の画面サイズによっては重なりが解消し きらず、根本原因のstacking order自体を直す必要があった。 .pageFooterにz-index: 10を明示し、pageMain側の子要素が常にフッターの 背面に描画されるようにした。elementFromPoint()による重なり位置での ヒットテストで、修正後は保存ボタンではなくフッター側が最前面になることを 確認済み。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix: プロフィールセットアップダイアログでフッターに要素が重なる問題を修正 .pageMainにposition:stickyなpageFooter分のpadding-bottomが無く、横長など 縦方向が狭い画面でスクロール最下部の要素(アイコン変更ボタン・自己紹介欄の 保存ボタン等)がフッターの裏に隠れていた。実機のgetBoundingClientRect()計測で 保存ボタンの下端(285.46px)がフッター範囲(208.65-266px)へ食い込んでいることを 確認し、pageMainにpadding-bottom: 72pxを追加。あわせてFollowページ(page===3) のみpageRoot/pageMainのラップ構造が欠けていたため、他ページと揃えた。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * clean up * Update Changelog --------- Co-authored-by: Zel9278 <43949163+Zel9278@users.noreply.github.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* refactor(backend): use zip.js for creating zip file * fix
* deps: update dependencies * deps: update dependencies * fix(frontend-builder): fix facade chunk detection * deps: update vue-tsc to 3.3.13 * deps: rollback vue-tsc to 3.3.11 * fix: migrate msw * fix: migrate msw v3
* test(federation): cover Move followers on destination server * fix(federation): transfer followers to local Move destinations
* fix(backend): strip HTML from instance preview descriptions * fix(backend): await HTML rendering in metadata tests * fix(backend): address instance description review feedback * fix(backend): preserve table boundaries and discard non-text HTML * fix(backend): handle encoded breaks and unblock coverage upload * fix(backend): preserve section boundaries in preview descriptions
* fix: センシティブな画像をアイコン・バナーに指定できないように * センシティブなファイルを選択できないように * tweak design * fix * Update Changelog * enhance(frontend): アイコン画像・バナー画像を外せるように * use option * use options * いろいろ変えた * refactor * Update packages/frontend/src/os.ts Co-authored-by: anatawa12 <anatawa12@icloud.com> * Update os.ts * Update os.ts * Update profile.vue * Update CHANGELOG.md * Update CHANGELOG.md * Update CHANGELOG.md * fix and refactor * fix * fix changelog * fix * fix --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com> Co-authored-by: anatawa12 <anatawa12@icloud.com>
* fix(backend): serialize concurrent signups with an advisory lock Local usernames have host = NULL, so the (usernameLower, host) composite unique index cannot reject duplicate local usernames. Take a per-username pg advisory transaction lock before the duplicate check to close the check-then-insert TOCTOU race (strix vuln-0039). * fix(frontend): load AP raw data on first open of admin user page * fix(backend): 未認証アクセス可でロールポリシー制限付きのエンドポイントで例外が発生する問題を修正 * fix(backend): ignore local test-federation volumes --------- Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
* New translations ja-jp.yml (Italian) [ci skip] * New translations ja-jp.yml (Spanish) [ci skip] * New translations ja-jp.yml (Korean) [ci skip] * New translations ja-jp.yml (Italian) [ci skip]
* refactor(backend): consolidate note reaction handling in streaming * perf(backend): reuse cached muted instances set in streaming channels * perf(backend): deduplicate lastActiveDate updates per user in streaming * perf(backend): bound per-connection memory usage of the streaming server * fix(backend): deliver pre-packed notes to antenna streams like other timelines * fix
…skey-dev#18039) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix(backend): ブロックしている・されているユーザーをチャットルームに招待できる問題を修正 * Update Changelog
* chore(deps): update dependency storybook to v10.6.2 [security] * fix(deps): update dependency fastify to v5.12.6 [security] * deps: update dependencies * deps(frontend): update happy-dom * fix: rollback vue-tsc to v3.3.11 * fix --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* New translations ja-jp.yml (Chinese Simplified) [ci skip] * New translations ja-jp.yml (Catalan) [ci skip] * New translations ja-jp.yml (Spanish) [ci skip] * New translations ja-jp.yml (Korean) [ci skip]
* fix(backend): ノート中のURLを正規化して禁止ワードを判定するように * add tests * update changelog * deps: update mfm-js to 0.28.0 * fix review * perf
* fix(backend): お知らせ更新後の値をUPDATE RETURNINGで取得するように - レプリカ構成で更新直後に古い値を読んでしまい、自動アーカイブの再予約判定を誤る可能性があったのを修正 - 起動時の予約復元処理のコメントを実際の目的(Redisのジョブ消失からの復元)に合わせて修正 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * refactor: canUseLocalOnlyEmojiの条件から絵文字のlocalOnly判定を分離 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * refactor(backend): アカウント作成後の期間によるフォロー承認判定の命名を具体化 - shouldRequireFollowApproval → shouldRequireFollowApprovalByAccountAge - requiresAgeBasedApproval → requiresApprovalByAccountAge (実年齢との混同を避ける) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(backend): URLのパス以降に含まれる禁止ワードのe2eテストを追加 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(backend): トートロジーになっていたSentryの既定収集範囲のテストを削除 既定値が適用されることは`restricts data collection by default`で検証済みで、 既定を絞る理由は定数側のコメントに記載済み Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
このPRによるapi.jsonの差分 差分はこちら--- base
+++ head
@@ -1,7 +1,7 @@
{
"openapi": "3.1.0",
"info": {
- "version": "2026.3.2",
+ "version": "2026.10.1",
"title": "Misskey API"
},
"externalDocs": {
@@ -2481,6 +2481,13 @@
],
"format": "misskey:id",
"default": null
+ },
+ "autoArchiveAt": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "default": null
}
},
"required": [
@@ -2549,6 +2556,15 @@
"$ref": "#/components/schemas/Error"
},
"examples": {
+ "INVALID_AUTO_ARCHIVE_AT": {
+ "value": {
+ "error": {
+ "message": "Invalid auto archive date.",
+ "code": "INVALID_AUTO_ARCHIVE_AT",
+ "id": "2a892bd5-487d-46a2-a5fe-3d85ad51defe"
+ }
+ }
+ },
"INVALID_PARAM": {
"value": {
"error": {
@@ -2923,6 +2939,13 @@
"isActive": {
"type": "boolean"
},
+ "autoArchiveAt": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
"forExistingUsers": {
"type": "boolean"
},
@@ -2957,6 +2980,7 @@
"icon",
"display",
"isActive",
+ "autoArchiveAt",
"forExistingUsers",
"silence",
"needConfirmationToRead",
@@ -3148,6 +3172,12 @@
},
"isActive": {
"type": "boolean"
+ },
+ "autoArchiveAt": {
+ "type": [
+ "integer",
+ "null"
+ ]
}
},
"required": [
@@ -3178,6 +3208,15 @@
}
}
},
+ "INVALID_AUTO_ARCHIVE_AT": {
+ "value": {
+ "error": {
+ "message": "Invalid auto archive date.",
+ "code": "INVALID_AUTO_ARCHIVE_AT",
+ "id": "01b83d7b-2fd5-4d7c-86c4-d03144d16355"
+ }
+ }
+ },
"INVALID_PARAM": {
"value": {
"error": {
@@ -3318,6 +3357,12 @@
"items": {
"type": "string"
}
+ },
+ "category": {
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"required": [
@@ -3367,6 +3412,12 @@
"type": "string",
"format": "id"
}
+ },
+ "category": {
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"required": [
@@ -3376,7 +3427,8 @@
"name",
"description",
"url",
- "roleIdsThatCanBeUsedThisDecoration"
+ "roleIdsThatCanBeUsedThisDecoration",
+ "category"
]
}
}
@@ -3735,6 +3787,12 @@
"type": "string",
"format": "id"
}
+ },
+ "category": {
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"required": [
@@ -3903,6 +3961,12 @@
"items": {
"type": "string"
}
+ },
+ "category": {
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"required": [
@@ -9720,6 +9784,24 @@
"enableSensitiveMediaDetectionForVideos": {
"type": "boolean"
},
+ "sensitiveMediaDetectionApiUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sensitiveMediaDetectionApiKey": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sensitiveMediaDetectionTimeout": {
+ "type": "number"
+ },
+ "sensitiveMediaDetectionMaxImagesPerRequest": {
+ "type": "number"
+ },
"proxyAccountId": {
"type": "string",
"format": "id"
@@ -10047,6 +10129,12 @@
"null"
]
},
+ "urlPreviewSensitiveList": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
"federation": {
"type": "string",
"enum": [
@@ -10155,6 +10243,10 @@
"sensitiveMediaDetectionSensitivity",
"setSensitiveFlagAutomatically",
"enableSensitiveMediaDetectionForVideos",
+ "sensitiveMediaDetectionApiUrl",
+ "sensitiveMediaDetectionApiKey",
+ "sensitiveMediaDetectionTimeout",
+ "sensitiveMediaDetectionMaxImagesPerRequest",
"proxyAccountId",
"email",
"smtpSecure",
@@ -10227,6 +10319,7 @@
"urlPreviewRequireContentLength",
"urlPreviewUserAgent",
"urlPreviewSummaryProxyUrl",
+ "urlPreviewSensitiveList",
"federation",
"federationHosts",
"deliverSuspendedSoftware",
@@ -11051,8 +11144,7 @@
"wait",
"delayed",
"completed",
- "failed",
- "paused"
+ "failed"
]
}
},
@@ -11190,6 +11282,165 @@
}
}
},
+ "/admin/queue/pause": {
+ "post": {
+ "operationId": "post___admin___queue___pause",
+ "summary": "admin/queue/pause",
+ "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:admin:queue*",
+ "externalDocs": {
+ "description": "Source code",
+ "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/admin/queue/pause.ts"
+ },
+ "tags": [
+ "admin"
+ ],
+ "security": [
+ {
+ "bearerAuth": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "queue": {
+ "type": "string",
+ "enum": [
+ "system",
+ "endedPollNotification",
+ "postScheduledNote",
+ "deliver",
+ "inbox",
+ "db",
+ "relationship",
+ "objectStorage",
+ "userWebhookDeliver",
+ "systemWebhookDeliver"
+ ]
+ }
+ },
+ "required": [
+ "queue"
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "204": {
+ "description": "OK (without any results)"
+ },
+ "400": {
+ "description": "Client error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "INVALID_PARAM": {
+ "value": {
+ "error": {
+ "message": "Invalid param.",
+ "code": "INVALID_PARAM",
+ "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Authentication error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "CREDENTIAL_REQUIRED": {
+ "value": {
+ "error": {
+ "message": "Credential required.",
+ "code": "CREDENTIAL_REQUIRED",
+ "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "AUTHENTICATION_FAILED": {
+ "value": {
+ "error": {
+ "message": "Authentication failed. Please ensure your token is correct.",
+ "code": "AUTHENTICATION_FAILED",
+ "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "418": {
+ "description": "I'm Ai",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "I_AM_AI": {
+ "value": {
+ "error": {
+ "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+ "code": "I_AM_AI",
+ "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Internal server error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "INTERNAL_ERROR": {
+ "value": {
+ "error": {
+ "message": "Internal error occurred. Please contact us if the error persists.",
+ "code": "INTERNAL_ERROR",
+ "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/admin/queue/promote-jobs": {
"post": {
"operationId": "post___admin___queue___promote-jobs",
@@ -11996,6 +12247,165 @@
}
}
},
+ "/admin/queue/resume": {
+ "post": {
+ "operationId": "post___admin___queue___resume",
+ "summary": "admin/queue/resume",
+ "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:admin:queue*",
+ "externalDocs": {
+ "description": "Source code",
+ "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/admin/queue/resume.ts"
+ },
+ "tags": [
+ "admin"
+ ],
+ "security": [
+ {
+ "bearerAuth": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "queue": {
+ "type": "string",
+ "enum": [
+ "system",
+ "endedPollNotification",
+ "postScheduledNote",
+ "deliver",
+ "inbox",
+ "db",
+ "relationship",
+ "objectStorage",
+ "userWebhookDeliver",
+ "systemWebhookDeliver"
+ ]
+ }
+ },
+ "required": [
+ "queue"
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "204": {
+ "description": "OK (without any results)"
+ },
+ "400": {
+ "description": "Client error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "INVALID_PARAM": {
+ "value": {
+ "error": {
+ "message": "Invalid param.",
+ "code": "INVALID_PARAM",
+ "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Authentication error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "CREDENTIAL_REQUIRED": {
+ "value": {
+ "error": {
+ "message": "Credential required.",
+ "code": "CREDENTIAL_REQUIRED",
+ "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "AUTHENTICATION_FAILED": {
+ "value": {
+ "error": {
+ "message": "Authentication failed. Please ensure your token is correct.",
+ "code": "AUTHENTICATION_FAILED",
+ "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "418": {
+ "description": "I'm Ai",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "I_AM_AI": {
+ "value": {
+ "error": {
+ "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+ "code": "I_AM_AI",
+ "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Internal server error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "INTERNAL_ERROR": {
+ "value": {
+ "error": {
+ "message": "Internal error occurred. Please contact us if the error persists.",
+ "code": "INTERNAL_ERROR",
+ "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/admin/queue/retry-job": {
"post": {
"operationId": "post___admin___queue___retry-job",
@@ -12506,7 +12916,7 @@
"post": {
"operationId": "post___admin___queue___stats",
"summary": "admin/queue/stats",
- "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *read:admin:emoji*",
+ "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *read:admin:queue*",
"externalDocs": {
"description": "Source code",
"url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/admin/queue/stats.ts"
@@ -13220,6 +13630,24 @@
"$ref": "#/components/schemas/Error"
},
"examples": {
+ "NO_SUCH_USER": {
+ "value": {
+ "error": {
+ "message": "No such user.",
+ "code": "NO_SUCH_USER",
+ "id": "ccafc7fe-5074-4edd-9dc0-8ef9ef6a701d"
+ }
+ }
+ },
+ "ACCESS_DENIED": {
+ "value": {
+ "error": {
+ "message": "Access denied.",
+ "code": "ACCESS_DENIED",
+ "id": "cda8f8ce-89a6-4f92-8055-33bbe0c1464d"
+ }
+ }
+ },
"INVALID_PARAM": {
"value": {
"error": {
@@ -18160,6 +18588,172 @@
}
}
},
+ "/admin/unset-mfa": {
+ "post": {
+ "operationId": "post___admin___unset-mfa",
+ "summary": "admin/unset-mfa",
+ "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:admin:unset-mfa*",
+ "externalDocs": {
+ "description": "Source code",
+ "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/admin/unset-mfa.ts"
+ },
+ "tags": [
+ "admin"
+ ],
+ "security": [
+ {
+ "bearerAuth": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "userId": {
+ "type": "string",
+ "format": "misskey:id"
+ }
+ },
+ "required": [
+ "userId"
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "204": {
+ "description": "OK (without any results)"
+ },
+ "400": {
+ "description": "Client error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "NO_SUCH_USER": {
+ "value": {
+ "error": {
+ "message": "No such user.",
+ "code": "NO_SUCH_USER",
+ "id": "ccafc7fe-5074-4edd-9dc0-8ef9ef6a701d"
+ }
+ }
+ },
+ "ACCESS_DENIED": {
+ "value": {
+ "error": {
+ "message": "Access denied.",
+ "code": "ACCESS_DENIED",
+ "id": "cda8f8ce-89a6-4f92-8055-33bbe0c1464d"
+ }
+ }
+ },
+ "INVALID_PARAM": {
+ "value": {
+ "error": {
+ "message": "Invalid param.",
+ "code": "INVALID_PARAM",
+ "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Authentication error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "CREDENTIAL_REQUIRED": {
+ "value": {
+ "error": {
+ "message": "Credential required.",
+ "code": "CREDENTIAL_REQUIRED",
+ "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "AUTHENTICATION_FAILED": {
+ "value": {
+ "error": {
+ "message": "Authentication failed. Please ensure your token is correct.",
+ "code": "AUTHENTICATION_FAILED",
+ "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "418": {
+ "description": "I'm Ai",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "I_AM_AI": {
+ "value": {
+ "error": {
+ "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+ "code": "I_AM_AI",
+ "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Internal server error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "INTERNAL_ERROR": {
+ "value": {
+ "error": {
+ "message": "Internal error occurred. Please contact us if the error persists.",
+ "code": "INTERNAL_ERROR",
+ "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/admin/unset-user-avatar": {
"post": {
"operationId": "post___admin___unset-user-avatar",
@@ -19074,6 +19668,26 @@
"enableSensitiveMediaDetectionForVideos": {
"type": "boolean"
},
+ "sensitiveMediaDetectionApiUrl": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sensitiveMediaDetectionApiKey": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sensitiveMediaDetectionTimeout": {
+ "type": "integer",
+ "minimum": 1
+ },
+ "sensitiveMediaDetectionMaxImagesPerRequest": {
+ "type": "integer",
+ "minimum": 1
+ },
"maintainerName": {
"type": [
"string",
@@ -19394,6 +20008,15 @@
"null"
]
},
+ "urlPreviewSensitiveList": {
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "type": "string"
+ }
+ },
"federation": {
"type": "string",
"enum": [
@@ -20944,6 +21567,168 @@
}
}
},
+ "/antennas/remove-note": {
+ "post": {
+ "operationId": "post___antennas___remove-note",
+ "summary": "antennas/remove-note",
+ "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *write:account*",
+ "externalDocs": {
+ "description": "Source code",
+ "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/antennas/remove-note.ts"
+ },
+ "tags": [
+ "antennas"
+ ],
+ "security": [
+ {
+ "bearerAuth": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "antennaId": {
+ "type": "string",
+ "format": "misskey:id"
+ },
+ "noteId": {
+ "type": "string",
+ "format": "misskey:id"
+ }
+ },
+ "required": [
+ "antennaId",
+ "noteId"
+ ]
+ }
+ }
+ }
+ },
+ "responses": {
+ "204": {
+ "description": "OK (without any results)"
+ },
+ "400": {
+ "description": "Client error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "NO_SUCH_ANTENNA": {
+ "value": {
+ "error": {
+ "message": "No such antenna.",
+ "code": "NO_SUCH_ANTENNA",
+ "id": "850926e0-fd3b-49b6-b69a-b28a5dbd82fe"
+ }
+ }
+ },
+ "INVALID_PARAM": {
+ "value": {
+ "error": {
+ "message": "Invalid param.",
+ "code": "INVALID_PARAM",
+ "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Authentication error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "CREDENTIAL_REQUIRED": {
+ "value": {
+ "error": {
+ "message": "Credential required.",
+ "code": "CREDENTIAL_REQUIRED",
+ "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "AUTHENTICATION_FAILED": {
+ "value": {
+ "error": {
+ "message": "Authentication failed. Please ensure your token is correct.",
+ "code": "AUTHENTICATION_FAILED",
+ "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "418": {
+ "description": "I'm Ai",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "I_AM_AI": {
+ "value": {
+ "error": {
+ "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+ "code": "I_AM_AI",
+ "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Internal server error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "INTERNAL_ERROR": {
+ "value": {
+ "error": {
+ "message": "Internal error occurred. Please contact us if the error persists.",
+ "code": "INTERNAL_ERROR",
+ "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/antennas/show": {
"post": {
"operationId": "post___antennas___show",
@@ -24475,6 +25260,15 @@
}
}
},
+ "ALREADY_FOLLOWING": {
+ "value": {
+ "error": {
+ "message": "You are already following that channel.",
+ "code": "ALREADY_FOLLOWING",
+ "id": "7db31665-651e-40c1-8e6e-28e9ad829a2d"
+ }
+ }
+ },
"INVALID_PARAM": {
"value": {
"error": {
@@ -44927,7 +45721,7 @@
"post": {
"operationId": "post___federation___update-remote-user",
"summary": "federation/update-remote-user",
- "description": "No description provided.\n\n**Credential required**: *No*",
+ "description": "No description provided.\n\n**Credential required**: *Yes* / **Permission**: *read:account*",
"externalDocs": {
"description": "Source code",
"url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/federation/update-remote-user.ts"
@@ -44935,6 +45729,11 @@
"tags": [
"federation"
],
+ "security": [
+ {
+ "bearerAuth": []
+ }
+ ],
"requestBody": {
"required": true,
"content": {
@@ -45042,6 +45841,27 @@
}
}
},
+ "429": {
+ "description": "Too many requests",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "RATE_LIMIT_EXCEEDED": {
+ "value": {
+ "error": {
+ "message": "Rate limit exceeded. Please try again later.",
+ "code": "RATE_LIMIT_EXCEEDED",
+ "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"500": {
"description": "Internal server error",
"content": {
@@ -45649,6 +46469,38 @@
"$ref": "#/components/schemas/Error"
},
"examples": {
+ "INVALID_URL": {
+ "value": {
+ "error": {
+ "message": "Invalid URL.",
+ "code": "INVALID_URL",
+ "id": "89b7ee05-ccfc-4bdd-9b13-61172fd1e06c",
+ "httpStatusCode": 400
+ }
+ }
+ },
+ "FETCH_RSS_FAILED": {
+ "value": {
+ "error": {
+ "message": "Failed to fetch RSS.",
+ "code": "FETCH_RSS_FAILED",
+ "id": "8db5d3d8-31d7-452f-b0cc-ca3b8925de12",
+ "kind": "server",
+ "httpStatusCode": 422
+ }
+ }
+ },
+ "FETCH_RSS_UNAVAILABLE": {
+ "value": {
+ "error": {
+ "message": "RSS fetching is temporarily unavailable.",
+ "code": "FETCH_RSS_UNAVAILABLE",
+ "id": "91e6ff44-c63f-4725-9ad0-b7a40d7f7655",
+ "kind": "server",
+ "httpStatusCode": 503
+ }
+ }
+ },
"INVALID_PARAM": {
"value": {
"error": {
@@ -45725,6 +46577,27 @@
}
}
},
+ "429": {
+ "description": "Too many requests",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "RATE_LIMIT_EXCEEDED": {
+ "value": {
+ "error": {
+ "message": "Rate limit exceeded. Please try again later.",
+ "code": "RATE_LIMIT_EXCEEDED",
+ "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"500": {
"description": "Internal server error",
"content": {
@@ -45949,6 +46822,38 @@
"$ref": "#/components/schemas/Error"
},
"examples": {
+ "INVALID_URL": {
+ "value": {
+ "error": {
+ "message": "Invalid URL.",
+ "code": "INVALID_URL",
+ "id": "89b7ee05-ccfc-4bdd-9b13-61172fd1e06c",
+ "httpStatusCode": 400
+ }
+ }
+ },
+ "FETCH_RSS_FAILED": {
+ "value": {
+ "error": {
+ "message": "Failed to fetch RSS.",
+ "code": "FETCH_RSS_FAILED",
+ "id": "8db5d3d8-31d7-452f-b0cc-ca3b8925de12",
+ "kind": "server",
+ "httpStatusCode": 422
+ }
+ }
+ },
+ "FETCH_RSS_UNAVAILABLE": {
+ "value": {
+ "error": {
+ "message": "RSS fetching is temporarily unavailable.",
+ "code": "FETCH_RSS_UNAVAILABLE",
+ "id": "91e6ff44-c63f-4725-9ad0-b7a40d7f7655",
+ "kind": "server",
+ "httpStatusCode": 503
+ }
+ }
+ },
"INVALID_PARAM": {
"value": {
"error": {
@@ -46025,6 +46930,27 @@
}
}
},
+ "429": {
+ "description": "Too many requests",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "RATE_LIMIT_EXCEEDED": {
+ "value": {
+ "error": {
+ "message": "Rate limit exceeded. Please try again later.",
+ "code": "RATE_LIMIT_EXCEEDED",
+ "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"500": {
"description": "Internal server error",
"content": {
@@ -48446,6 +49372,181 @@
}
}
},
+ "/following/list": {
+ "post": {
+ "operationId": "post___following___list",
+ "summary": "following/list",
+ "description": "List of following users\n\n**Credential required**: *Yes* / **Permission**: *read:following*",
+ "externalDocs": {
+ "description": "Source code",
+ "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/following/list.ts"
+ },
+ "tags": [
+ "users"
+ ],
+ "security": [
+ {
+ "bearerAuth": []
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "notification": {
+ "type": "boolean",
+ "default": false
+ },
+ "sinceId": {
+ "type": "string",
+ "format": "misskey:id"
+ },
+ "untilId": {
+ "type": "string",
+ "format": "misskey:id"
+ },
+ "sinceDate": {
+ "type": "integer"
+ },
+ "untilDate": {
+ "type": "integer"
+ },
+ "limit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100,
+ "default": 10
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK (with results)",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Following"
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Client error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "INVALID_PARAM": {
+ "value": {
+ "error": {
+ "message": "Invalid param.",
+ "code": "INVALID_PARAM",
+ "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "401": {
+ "description": "Authentication error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "CREDENTIAL_REQUIRED": {
+ "value": {
+ "error": {
+ "message": "Credential required.",
+ "code": "CREDENTIAL_REQUIRED",
+ "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "403": {
+ "description": "Forbidden error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "AUTHENTICATION_FAILED": {
+ "value": {
+ "error": {
+ "message": "Authentication failed. Please ensure your token is correct.",
+ "code": "AUTHENTICATION_FAILED",
+ "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "418": {
+ "description": "I'm Ai",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "I_AM_AI": {
+ "value": {
+ "error": {
+ "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
+ "code": "I_AM_AI",
+ "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "500": {
+ "description": "Internal server error",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "INTERNAL_ERROR": {
+ "value": {
+ "error": {
+ "message": "Internal error occurred. Please contact us if the error persists.",
+ "code": "INTERNAL_ERROR",
+ "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/following/requests/accept": {
"post": {
"operationId": "post___following___requests___accept",
@@ -51264,6 +52365,12 @@
"type": "string",
"format": "id"
}
+ },
+ "category": {
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"required": [
@@ -52028,7 +53135,8 @@
"type": "object",
"properties": {
"tag": {
- "type": "string"
+ "type": "string",
+ "maxLength": 128
}
},
"required": [
@@ -52490,7 +53598,8 @@
"type": "object",
"properties": {
"tag": {
- "type": "string"
+ "type": "string",
+ "maxLength": 128
},
"limit": {
"type": "integer",
@@ -53553,186 +54662,7 @@
"content": {
"application/json": {
"schema": {
- "type": "object",
- "properties": {
- "rp": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- }
- }
- },
- "user": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "displayName": {
- "type": "string"
- }
- },
- "required": [
- "id",
- "name",
- "displayName"
- ]
- },
- "challenge": {
- "type": "string"
- },
- "pubKeyCredParams": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string"
- },
- "alg": {
- "type": "number"
- }
- },
- "required": [
- "type",
- "alg"
- ]
- }
- },
- "timeout": {
- "type": [
- "number",
- "null"
- ]
- },
- "excludeCredentials": {
- "type": [
- "array",
- "null"
- ],
- "items": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "type": {
- "type": "string"
- },
- "transports": {
- "type": "array",
- "items": {
- "type": "string",
- "enum": [
- "ble",
- "cable",
- "hybrid",
- "internal",
- "nfc",
- "smart-card",
- "usb"
- ]
- }
- }
- },
- "required": [
- "id",
- "type",
- "transports"
- ]
- }
- },
- "authenticatorSelection": {
- "type": [
- "object",
- "null"
- ],
- "properties": {
- "authenticatorAttachment": {
- "type": "string",
- "enum": [
- "cross-platform",
- "platform"
- ]
- },
- "requireResidentKey": {
- "type": "boolean"
- },
- "userVerification": {
- "type": "string",
- "enum": [
- "discouraged",
- "preferred",
- "required"
- ]
- }
- },
- "required": [
- "authenticatorAttachment",
- "requireResidentKey",
- "userVerification"
- ]
- },
- "attestation": {
- "type": [
- "string",
- "null"
- ],
- "enum": [
- "direct",
- "enterprise",
- "indirect",
- "none",
- null
- ]
- },
- "extensions": {
- "type": [
- "object",
- "null"
- ],
- "properties": {
- "appid": {
- "type": [
- "string",
- "null"
- ]
- },
- "credProps": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "hmacCreateSecret": {
- "type": [
- "boolean",
- "null"
- ]
- }
- },
- "required": [
- "appid",
- "credProps",
- "hmacCreateSecret"
- ]
- }
- },
- "required": [
- "rp",
- "user",
- "challenge",
- "pubKeyCredParams",
- "timeout",
- "excludeCredentials",
- "authenticatorSelection",
- "attestation",
- "extensions"
- ]
+ "type": "object"
}
}
}
@@ -60925,16 +61855,11 @@
"post": {
"operationId": "post___i___revoke-token",
"summary": "i/revoke-token",
- "description": "No description provided.\n\n**Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.\n**Credential required**: *Yes*",
+ "description": "Revoke an access token of the authenticated user. Requires credential. When called with an access token (third-party app), only the token currently in use can be revoked.\n\n**Credential required**: *No*",
"externalDocs": {
"description": "Source code",
"url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/i/revoke-token.ts"
},
- "security": [
- {
- "bearerAuth": []
- }
- ],
"requestBody": {
"required": true,
"content": {
@@ -60984,6 +61909,26 @@
"$ref": "#/components/schemas/Error"
},
"examples": {
+ "CREDENTIAL_REQUIRED": {
+ "value": {
+ "error": {
+ "message": "Credential required.",
+ "code": "CREDENTIAL_REQUIRED",
+ "id": "6f1f0d3a-3d5b-4b1f-9c3e-2a6d1e5b8c47",
+ "httpStatusCode": 401
+ }
+ }
+ },
+ "PERMISSION_DENIED": {
+ "value": {
+ "error": {
+ "message": "Permission denied.",
+ "code": "PERMISSION_DENIED",
+ "id": "fc20d118-5705-4462-b6c5-2b5b43092cf3",
+ "httpStatusCode": 403
+ }
+ }
+ },
"INVALID_PARAM": {
"value": {
"error": {
@@ -61807,6 +62752,22 @@
"autoAcceptFollowed": {
"type": "boolean"
},
+ "followApprovalLocalSeconds": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 2592000
+ },
+ "followApprovalRemoteSeconds": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 2592000
+ },
"noCrawle": {
"type": "boolean"
},
@@ -62727,6 +63688,24 @@
}
}
},
+ "AVATAR_IS_SENSITIVE": {
+ "value": {
+ "error": {
+ "message": "The file specified as an avatar is marked as sensitive.",
+ "code": "AVATAR_IS_SENSITIVE",
+ "id": "71bb5e53-4742-4609-b465-36081e131208"
+ }
+ }
+ },
+ "BANNER_IS_SENSITIVE": {
+ "value": {
+ "error": {
+ "message": "The file specified as a banner is marked as sensitive.",
+ "code": "BANNER_IS_SENSITIVE",
+ "id": "e148b34c-9f33-4300-93e0-7817008fb366"
+ }
+ }
+ },
"NO_SUCH_PAGE": {
"value": {
"error": {
@@ -70615,192 +71594,6 @@
}
},
"/notes/reactions": {
- "get": {
- "operationId": "get___notes___reactions",
- "summary": "notes/reactions",
- "description": "No description provided.\n\n**Credential required**: *No*",
- "externalDocs": {
- "description": "Source code",
- "url": "https://github.com/misskey-dev/misskey/blob/develop/packages/backend/src/server/api/endpoints/notes/reactions.ts"
- },
- "tags": [
- "notes"
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "noteId": {
- "type": "string",
- "format": "misskey:id"
- },
- "type": {
- "type": [
- "string",
- "null"
- ]
- },
- "limit": {
- "type": "integer",
- "minimum": 1,
- "maximum": 100,
- "default": 10
- },
- "sinceId": {
- "type": "string",
- "format": "misskey:id"
- },
- "untilId": {
- "type": "string",
- "format": "misskey:id"
- },
- "sinceDate": {
- "type": "integer"
- },
- "untilDate": {
- "type": "integer"
- }
- },
- "required": [
- "noteId"
- ]
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "OK (with results)",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/NoteReaction"
- }
- }
- }
- }
- },
- "400": {
- "description": "Client error",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Error"
- },
- "examples": {
- "NO_SUCH_NOTE": {
- "value": {
- "error": {
- "message": "No such note.",
- "code": "NO_SUCH_NOTE",
- "id": "263fff3d-d0e1-4af4-bea7-8408059b451a"
- }
- }
- },
- "INVALID_PARAM": {
- "value": {
- "error": {
- "message": "Invalid param.",
- "code": "INVALID_PARAM",
- "id": "3d81ceae-475f-4600-b2a8-2bc116157532"
- }
- }
- }
- }
- }
- }
- },
- "401": {
- "description": "Authentication error",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Error"
- },
- "examples": {
- "CREDENTIAL_REQUIRED": {
- "value": {
- "error": {
- "message": "Credential required.",
- "code": "CREDENTIAL_REQUIRED",
- "id": "1384574d-a912-4b81-8601-c7b1c4085df1"
- }
- }
- }
- }
- }
- }
- },
- "403": {
- "description": "Forbidden error",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Error"
- },
- "examples": {
- "AUTHENTICATION_FAILED": {
- "value": {
- "error": {
- "message": "Authentication failed. Please ensure your token is correct.",
- "code": "AUTHENTICATION_FAILED",
- "id": "b0a7f5f8-dc2f-4171-b91f-de88ad238e14"
- }
- }
- }
- }
- }
- }
- },
- "418": {
- "description": "I'm Ai",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Error"
- },
- "examples": {
- "I_AM_AI": {
- "value": {
- "error": {
- "message": "You sent a request to Ai-chan, Misskey's showgirl, instead of the server.",
- "code": "I_AM_AI",
- "id": "60c46cd1-f23a-46b1-bebe-5d2b73951a84"
- }
- }
- }
- }
- }
- }
- },
- "500": {
- "description": "Internal server error",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/Error"
- },
- "examples": {
- "INTERNAL_ERROR": {
- "value": {
- "error": {
- "message": "Internal error occurred. Please contact us if the error persists.",
- "code": "INTERNAL_ERROR",
- "id": "5d37dbcb-891e-41ca-a3d6-e690c97775ac"
- }
- }
- }
- }
- }
- }
- }
- }
- },
"post": {
"operationId": "post___notes___reactions",
"summary": "notes/reactions",
@@ -71740,6 +72533,18 @@
"query": {
"type": "string"
},
+ "rangeStartAt": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "rangeEndAt": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
"sinceId": {
"type": "string",
"format": "misskey:id"
@@ -71948,7 +72753,8 @@
"properties": {
"tag": {
"type": "string",
- "minLength": 1
+ "minLength": 1,
+ "maxLength": 128
}
},
"required": [
@@ -71965,7 +72771,8 @@
"type": "array",
"items": {
"type": "string",
- "minLength": 1
+ "minLength": 1,
+ "maxLength": 128
},
"minItems": 1
},
@@ -72737,6 +73544,15 @@
}
}
},
+ "ALREADY_MUTING": {
+ "value": {
+ "error": {
+ "message": "You are already muting that thread.",
+ "code": "ALREADY_MUTING",
+ "id": "c146e22d-1141-4b31-b28d-176371014d18"
+ }
+ }
+ },
"INVALID_PARAM": {
"value": {
"error": {
@@ -79805,6 +80621,9 @@
"originalUsersCount": {
"type": "number"
},
+ "reactionsCount": {
+ "type": "number"
+ },
"instances": {
"type": "number"
},
@@ -79820,6 +80639,7 @@
"originalNotesCount",
"usersCount",
"originalUsersCount",
+ "reactionsCount",
"instances",
"driveUsageLocal",
"driveUsageRemote"
@@ -80032,6 +80852,15 @@
"$ref": "#/components/schemas/Error"
},
"examples": {
+ "INVALID_ENDPOINT": {
+ "value": {
+ "error": {
+ "message": "Invalid push endpoint.",
+ "code": "INVALID_ENDPOINT",
+ "id": "4432adbe-17c0-4f9f-b43c-9ceb2f8910fe"
+ }
+ }
+ },
"INVALID_PARAM": {
"value": {
"error": {
@@ -80329,10 +81158,18 @@
"properties": {
"endpoint": {
"type": "string"
+ },
+ "auth": {
+ "type": "string"
+ },
+ "publickey": {
+ "type": "string"
}
},
"required": [
- "endpoint"
+ "endpoint",
+ "auth",
+ "publickey"
]
}
}
@@ -80426,6 +81263,27 @@
}
}
},
+ "429": {
+ "description": "Too many requests",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ },
+ "examples": {
+ "RATE_LIMIT_EXCEEDED": {
+ "value": {
+ "error": {
+ "message": "Rate limit exceeded. Please try again later.",
+ "code": "RATE_LIMIT_EXCEEDED",
+ "id": "d5826d14-3982-4d2e-8011-b9e9f02499ef"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"500": {
"description": "Internal server error",
"content": {
@@ -88177,6 +89035,18 @@
"autoAcceptFollowed": {
"type": "boolean"
},
+ "followApprovalLocalSeconds": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "followApprovalRemoteSeconds": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
"noCrawle": {
"type": "boolean"
},
@@ -89202,6 +90072,8 @@
"autoSensitive",
"carefulBot",
"autoAcceptFollowed",
+ "followApprovalLocalSeconds",
+ "followApprovalRemoteSeconds",
"noCrawle",
"preventAiLearning",
"isExplorable",
@@ -92888,6 +93760,9 @@
"canHideAds": {
"type": "boolean"
},
+ "canCreateChannel": {
+ "type": "boolean"
+ },
"driveCapacityMb": {
"type": "integer"
},
@@ -92984,6 +93859,7 @@
"canSearchUsers",
"canUseTranslator",
"canHideAds",
+ "canCreateChannel",
"driveCapacityMb",
"maxFileSizeMb",
"uploadableFileTypes", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
今回のリリースではMisskeyの動作要件やSentryの設定方法などが変更されます。必ずアップグレード前にお使いの環境をご確認ください。
sendDefaultPiiが削除され、収集する項目を個別に指定するdataCollectionに置き換えられました。sentryForBackend.options.sendDefaultPii/sentryForFrontend.options.sendDefaultPiiを設定しているサーバーは対応が必要です。 このオプションは無視されるようになり、設定されている場合は起動時に警告を出力します。同じ収集範囲を維持するにはdataCollection: {}に書き換えてください。dataCollection未指定時にすべてを収集しますが、Misskeyは利用者の情報が意図せず送信されないよう、収集範囲を絞った既定を適用します(ユーザー情報・Cookie・URLクエリパラメータ・HTTPボディ・DBクエリの値を送信せず、中継元を特定できるヘッダーを除外)。dataCollectionを明示してください。Misskeyの既定をすべて置き換えるため、dataCollection: {}と書くとSentry本来の既定(すべて収集)に戻ります。sentryForBackend.options.profilesSampleRateを設定している場合、v11で削除されたため無視されます。プロファイリングの有効化は引き続きsentryForBackend.enableNodeProfilingで行います。General
Client
Server