Skip to content

Commit 2518cf3

Browse files
Merge pull request #14675 from misskey-dev/develop
Release: 2024.10.0
2 parents 5fc8b3b + 6de7c27 commit 2518cf3

File tree

140 files changed

+4081
-1810
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

140 files changed

+4081
-1810
lines changed

.config/cypress-devcontainer.yml

+13
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22
# Misskey configuration
33
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
44

5+
# ┌────────────────────────┐
6+
#───┘ Initial Setup Password └─────────────────────────────────────────────────────
7+
8+
# Password to initiate setting up admin account.
9+
# It will not be used after the initial setup is complete.
10+
#
11+
# Be sure to change this when you set up Misskey via the Internet.
12+
#
13+
# The provider of the service who sets up Misskey on behalf of the customer should
14+
# set this value to something unique when generating the Misskey config file,
15+
# and provide it to the customer.
16+
setupPassword: example_password_please_change_this_or_you_will_get_hacked
17+
518
# ┌─────┐
619
#───┘ URL └─────────────────────────────────────────────────────
720

.config/example.yml

+14
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,20 @@
5959
#
6060
# publishTarballInsteadOfProvideRepositoryUrl: true
6161

62+
# ┌────────────────────────┐
63+
#───┘ Initial Setup Password └─────────────────────────────────────────────────────
64+
65+
# Password to initiate setting up admin account.
66+
# It will not be used after the initial setup is complete.
67+
#
68+
# Be sure to change this when you set up Misskey via the Internet.
69+
#
70+
# The provider of the service who sets up Misskey on behalf of the customer should
71+
# set this value to something unique when generating the Misskey config file,
72+
# and provide it to the customer.
73+
#
74+
# setupPassword: example_password_please_change_this_or_you_will_get_hacked
75+
6276
# ┌─────┐
6377
#───┘ URL └─────────────────────────────────────────────────────
6478

.github/misskey/test.yml

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
url: 'http://misskey.local'
22

3+
setupPassword: example_password_please_change_this_or_you_will_get_hacked
4+
35
# ローカルでテストするときにポートを被らないようにするためデフォルトのものとは変える(以下同じ)
46
port: 61812
57

.github/workflows/check-misskey-js-autogen.yml

+7-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ jobs:
2121
uses: actions/[email protected]
2222
with:
2323
submodules: true
24+
persist-credentials: false
2425
ref: refs/pull/${{ github.event.pull_request.number }}/merge
2526

2627
- name: setup pnpm
@@ -57,7 +58,7 @@ jobs:
5758
name: generated-misskey-js
5859
path: packages/misskey-js/generator/built/autogen
5960

60-
# pull_request_target safety: permissions: read-all, and there are no secrets used in this job
61+
# pull_request_target safety: permissions: read-all, and no user codes are executed
6162
get-actual-misskey-js:
6263
runs-on: ubuntu-latest
6364
permissions:
@@ -68,6 +69,7 @@ jobs:
6869
uses: actions/[email protected]
6970
with:
7071
submodules: true
72+
persist-credentials: false
7173
ref: refs/pull/${{ github.event.pull_request.number }}/merge
7274

7375
- name: Upload From Merged
@@ -131,3 +133,7 @@ jobs:
131133
mode: delete
132134
message: "Thank you!"
133135
create_if_not_exists: false
136+
137+
- name: Make failure if changes are detected
138+
if: steps.check-changes.outputs.changes == 'true'
139+
run: exit 1

.github/workflows/lint.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ jobs:
7575
- run: corepack enable
7676
- run: pnpm i --frozen-lockfile
7777
- name: Restore eslint cache
78-
uses: actions/cache@v4.0.2
78+
uses: actions/cache@v4.1.0
7979
with:
8080
path: ${{ env.eslint-cache-path }}
8181
key: eslint-${{ env.eslint-cache-version }}-${{ matrix.workspace }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.ref_name }}-${{ github.sha }}

CHANGELOG.md

+32
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,35 @@
1+
## 2024.10.0
2+
3+
### Note
4+
- セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません)
5+
- ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。
6+
- なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。
7+
- ユーザーデータを読み込む際の型が一部変更されました。
8+
- `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました
9+
10+
### General
11+
- Feat: サーバー初期設定時に初期パスワードを設定できるように
12+
- Feat: 通報にモデレーションノートを残せるように
13+
- Feat: 通報の解決種別を設定できるように
14+
- Enhance: 通報の解決と転送を個別に行えるように
15+
- Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました
16+
- Enhance: 依存関係の更新
17+
- Enhance: l10nの更新
18+
- Enhance: Playの「人気」タブで10件以上表示可能に #14399
19+
- Fix: 連合のホワイトリストが正常に登録されない問題を修正
20+
21+
### Client
22+
- Enhance: デザインの調整
23+
- Enhance: ログイン画面の認証フローを改善
24+
- Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正
25+
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657)
26+
27+
### Server
28+
- Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように
29+
- Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように
30+
- Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 )
31+
- Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正
32+
133
## 2024.9.0
234

335
### General

cypress/e2e/basic.cy.ts

+12-5
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ describe('Before setup instance', () => {
2323

2424
cy.intercept('POST', '/api/admin/accounts/create').as('signup');
2525

26+
cy.get('[data-cy-admin-initial-password] input').type('example_password_please_change_this_or_you_will_get_hacked');
2627
cy.get('[data-cy-admin-username] input').type('admin');
2728
cy.get('[data-cy-admin-password] input').type('admin1234');
2829
cy.get('[data-cy-admin-ok]').click();
@@ -119,11 +120,16 @@ describe('After user signup', () => {
119120
it('signin', () => {
120121
cy.visitHome();
121122

122-
cy.intercept('POST', '/api/signin').as('signin');
123+
cy.intercept('POST', '/api/signin-flow').as('signin');
123124

124125
cy.get('[data-cy-signin]').click();
125-
cy.get('[data-cy-signin-username] input').type('alice');
126-
// Enterキーでサインインできるかの確認も兼ねる
126+
127+
cy.get('[data-cy-signin-page-input]').should('be.visible', { timeout: 1000 });
128+
// Enterキーで続行できるかの確認も兼ねる
129+
cy.get('[data-cy-signin-username] input').type('alice{enter}');
130+
131+
cy.get('[data-cy-signin-page-password]').should('be.visible', { timeout: 10000 });
132+
// Enterキーで続行できるかの確認も兼ねる
127133
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
128134

129135
cy.wait('@signin');
@@ -138,8 +144,9 @@ describe('After user signup', () => {
138144
cy.visitHome();
139145

140146
cy.get('[data-cy-signin]').click();
141-
cy.get('[data-cy-signin-username] input').type('alice');
142-
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
147+
148+
cy.get('[data-cy-signin-page-input]').should('be.visible', { timeout: 1000 });
149+
cy.get('[data-cy-signin-username] input').type('alice{enter}');
143150

144151
// TODO: cypressにブラウザの言語指定できる機能が実装され次第英語のみテストするようにする
145152
cy.contains(/|This account has been suspended due to/gi);

cypress/support/commands.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,19 @@ Cypress.Commands.add('registerUser', (username, password, isAdmin = false) => {
4848
cy.request('POST', route, {
4949
username: username,
5050
password: password,
51+
...(isAdmin ? { setupPassword: 'example_password_please_change_this_or_you_will_get_hacked' } : {}),
5152
}).its('body').as(username);
5253
});
5354

5455
Cypress.Commands.add('login', (username, password) => {
5556
cy.visitHome();
5657

57-
cy.intercept('POST', '/api/signin').as('signin');
58+
cy.intercept('POST', '/api/signin-flow').as('signin');
5859

5960
cy.get('[data-cy-signin]').click();
60-
cy.get('[data-cy-signin-username] input').type(username);
61+
cy.get('[data-cy-signin-page-input]').should('be.visible', { timeout: 1000 });
62+
cy.get('[data-cy-signin-username] input').type(`${username}{enter}`);
63+
cy.get('[data-cy-signin-page-password]').should('be.visible', { timeout: 10000 });
6164
cy.get('[data-cy-signin-password] input').type(`${password}{enter}`);
6265

6366
cy.wait('@signin').as('signedIn');

packages/frontend/src/components/MkAbuseReport.stories.impl.ts renamed to idea/MkAbuseReport.stories.impl.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import { action } from '@storybook/addon-actions';
88
import { StoryObj } from '@storybook/vue3';
99
import { HttpResponse, http } from 'msw';
10-
import { abuseUserReport } from '../../.storybook/fakes.js';
11-
import { commonHandlers } from '../../.storybook/mocks.js';
10+
import { abuseUserReport } from '../packages/frontend/.storybook/fakes.js';
11+
import { commonHandlers } from '../packages/frontend/.storybook/mocks.js';
1212
import MkAbuseReport from './MkAbuseReport.vue';
1313
export const Default = {
1414
render(args) {

locales/ar-SA.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -626,10 +626,7 @@ abuseReported: "أُرسل البلاغ، شكرًا لك"
626626
reporter: "المُبلّغ"
627627
reporteeOrigin: "أصل البلاغ"
628628
reporterOrigin: "أصل المُبلّغ"
629-
forwardReport: "وجّه البلاغ إلى المثيل البعيد"
630-
forwardReportIsAnonymous: "في المثيل البعيد سيظهر المبلّغ كحساب مجهول."
631629
send: "أرسل"
632-
abuseMarkAsResolved: "علّم البلاغ كمحلول"
633630
openInNewTab: "افتح في لسان جديد"
634631
defaultNavigationBehaviour: "سلوك الملاحة الافتراضي"
635632
editTheseSettingsMayBreakAccount: "تعديل هذه الإعدادات قد يسبب عطبًا لحسابك"
@@ -1533,6 +1530,7 @@ _notification:
15331530
reaction: "التفاعل"
15341531
receiveFollowRequest: "طلبات المتابعة"
15351532
followRequestAccepted: "طلبات المتابعة المقبولة"
1533+
login: "لِج"
15361534
app: "إشعارات التطبيقات المرتبطة"
15371535
_actions:
15381536
followBack: "تابعك بالمثل"

locales/bn-BD.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -624,10 +624,7 @@ abuseReported: "আপনার অভিযোগটি দাখিল কর
624624
reporter: "অভিযোগকারী"
625625
reporteeOrigin: "অভিযোগটির উৎস"
626626
reporterOrigin: "অভিযোগকারীর উৎস"
627-
forwardReport: "রিমোট ইন্সত্যান্সে অভিযোগটি পাঠান"
628-
forwardReportIsAnonymous: "আপনার তথ্য রিমোট ইন্সত্যান্সে পাঠানো হবে না এবং একটি বেনামী সিস্টেম অ্যাকাউন্ট হিসাবে প্রদর্শিত হবে।"
629627
send: "পাঠান"
630-
abuseMarkAsResolved: "অভিযোগটিকে সমাধাকৃত হিসাবে চিহ্নিত করুন"
631628
openInNewTab: "নতুন ট্যাবে খুলুন"
632629
openInSideView: "সাইড ভিউতে খুলুন"
633630
defaultNavigationBehaviour: "ডিফল্ট নেভিগেশন"
@@ -1313,6 +1310,7 @@ _notification:
13131310
pollEnded: "পোল শেষ"
13141311
receiveFollowRequest: "প্রাপ্ত অনুসরণের অনুরোধসমূহ"
13151312
followRequestAccepted: "গৃহীত অনুসরণের অনুরোধসমূহ"
1313+
login: "প্রবেশ করুন"
13161314
app: "লিঙ্ক করা অ্যাপ থেকে বিজ্ঞপ্তি"
13171315
_actions:
13181316
followBack: "ফলো ব্যাক করেছে"

locales/ca-ES.yml

+26-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ search: "Cercar"
88
notifications: "Notificacions"
99
username: "Nom d'usuari"
1010
password: "Contrasenya"
11+
initialPasswordForSetup: "Contrasenya inicial per la configuració inicial"
12+
initialPasswordIsIncorrect: "La contrasenya no és correcta."
1113
forgotPassword: "Contrasenya oblidada"
1214
fetchingAsApObject: "Cercant en el Fediverse..."
1315
ok: "OK"
@@ -236,6 +238,8 @@ silencedInstances: "Instàncies silenciades"
236238
silencedInstancesDescription: "Llista els enllaços d'amfitrió de les instàncies que vols silenciar. Tots els comptes de les instàncies llistades s'establiran com silenciades i només podran fer sol·licitacions de seguiment, i no podran mencionar als comptes locals si no els segueixen. Això no afectarà les instàncies bloquejades."
237239
mediaSilencedInstances: "Instàncies amb els arxius silenciats"
238240
mediaSilencedInstancesDescription: "Llista els noms dels servidors que vulguis silenciar els arxius, un servidor per línia. Tots els comptes que pertanyin als servidors llistats seran tractats com sensibles i no podran fer servir emojis personalitzats. Això no tindrà efecte sobre els servidors blocats."
241+
federationAllowedHosts: "Llista de servidors federats"
242+
federationAllowedHostsDescription: "Llista dels servidors amb els quals es federa."
239243
muteAndBlock: "Silencia i bloca"
240244
mutedUsers: "Usuaris silenciats"
241245
blockedUsers: "Usuaris bloquejats"
@@ -334,6 +338,7 @@ renameFolder: "Canvia el nom de la carpeta"
334338
deleteFolder: "Elimina la carpeta"
335339
folder: "Carpeta "
336340
addFile: "Afegeix un fitxer"
341+
showFile: "Mostrar fitxer"
337342
emptyDrive: "La teva unitat és buida"
338343
emptyFolder: "La carpeta està buida"
339344
unableToDelete: "No es pot eliminar"
@@ -509,6 +514,10 @@ uiLanguage: "Idioma de l'interfície"
509514
aboutX: "Respecte a {x}"
510515
emojiStyle: "Estil d'emoji"
511516
native: "Nadiu"
517+
menuStyle: "Estil de menú"
518+
style: "Estil"
519+
drawer: "Calaix"
520+
popup: "Emergent"
512521
showNoteActionsOnlyHover: "Només mostra accions de la nota en passar amb el cursor"
513522
showReactionsCount: "Mostra el nombre de reaccions a les publicacions"
514523
noHistory: "No hi ha un registre previ"
@@ -709,10 +718,7 @@ abuseReported: "La teva denúncia s'ha enviat. Moltes gràcies."
709718
reporter: "Denunciant "
710719
reporteeOrigin: "Origen de la denúncia "
711720
reporterOrigin: "Origen del denunciant"
712-
forwardReport: "Transferir la denúncia a una instància remota"
713-
forwardReportIsAnonymous: "En lloc del teu compte, es farà servir un compte anònim com a denunciant al servidor remot."
714721
send: "Envia"
715-
abuseMarkAsResolved: "Marca la denúncia com a resolta"
716722
openInNewTab: "Obre a una pestanya nova"
717723
openInSideView: "Obre a una vista lateral"
718724
defaultNavigationBehaviour: "Navegació per defecte"
@@ -914,6 +920,7 @@ followersVisibility: "Visibilitat dels seguidors"
914920
continueThread: "Veure la continuació del fil"
915921
deleteAccountConfirm: "Això eliminarà el teu compte irreversiblement. Procedir?"
916922
incorrectPassword: "Contrasenya incorrecta."
923+
incorrectTotp: "La contrasenya no és correcta, o ha caducat."
917924
voteConfirm: "Confirma el teu vot \"{choice}\""
918925
hide: "Amagar"
919926
useDrawerReactionPickerForMobile: "Mostrar el selector de reaccions com un calaix al mòbil "
@@ -1268,6 +1275,15 @@ fromX: "De {x}"
12681275
genEmbedCode: "Obtenir el codi per incrustar"
12691276
noteOfThisUser: "Notes d'aquest usuari"
12701277
clipNoteLimitExceeded: "No es poden afegir més notes a aquest clip."
1278+
performance: "Rendiment"
1279+
modified: "Modificat"
1280+
discard: "Descarta"
1281+
thereAreNChanges: "Hi ha(n) {n} canvi(s)"
1282+
signinWithPasskey: "Inicia sessió amb Passkey"
1283+
unknownWebAuthnKey: "Passkey desconeguda"
1284+
passkeyVerificationFailed: "La verificació a fallat"
1285+
passkeyVerificationSucceededButPasswordlessLoginDisabled: "La verificació de la passkey a estat correcta, però s'ha deshabilitat l'inici de sessió sense contrasenya."
1286+
messageToFollower: "Missatge als meus seguidors"
12711287
_delivery:
12721288
status: "Estat d'entrega "
12731289
stop: "Suspés"
@@ -2235,6 +2251,9 @@ _profile:
22352251
changeBanner: "Canviar el bàner "
22362252
verifiedLinkDescription: "Escrivint una adreça URL que enllaci a aquest perfil, una icona de propietat verificada es mostrarà al costat del camp."
22372253
avatarDecorationMax: "Pot afegir un màxim de {max} decoracions."
2254+
followedMessage: "Missatge als nous seguidors"
2255+
followedMessageDescription: "Es pot configurar un missatge curt que es mostra a l'altra persona quan comença a seguir-te."
2256+
followedMessageDescriptionForLockedAccount: "Si comencen a seguir-te es mostra un missatge de quan es permet aquesta sol·licitud. "
22382257
_exportOrImport:
22392258
allNotes: "Totes les publicacions"
22402259
favoritedNotes: "Notes preferides"
@@ -2373,6 +2392,7 @@ _notification:
23732392
renotedBySomeUsers: "L'han impulsat {n} usuaris"
23742393
followedBySomeUsers: "Et segueixen {n} usuaris"
23752394
flushNotification: "Netejar notificacions"
2395+
exportOfXCompleted: "Completada l'exportació de {n}"
23762396
_types:
23772397
all: "Tots"
23782398
note: "Notes noves"
@@ -2387,6 +2407,9 @@ _notification:
23872407
followRequestAccepted: "Petició de seguiment acceptada"
23882408
roleAssigned: "Rol donat"
23892409
achievementEarned: "Assoliment desbloquejat"
2410+
exportCompleted: "Exportació completada"
2411+
login: "Iniciar sessió"
2412+
test: "Prova la notificació"
23902413
app: "Notificacions d'aplicacions"
23912414
_actions:
23922415
followBack: "t'ha seguit també"

locales/cs-CZ.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -657,10 +657,7 @@ abuseReported: "Nahlášení bylo odesláno. Děkujeme převelice."
657657
reporter: "Nahlásil"
658658
reporteeOrigin: "Původ nahlášení"
659659
reporterOrigin: "Původ nahlasovače"
660-
forwardReport: "Přeposlat nahlášení do vzdálené instance"
661-
forwardReportIsAnonymous: "Místo vašeho účtu se ve vzdálené instanci zobrazí anonymní systémový účet jako nahlašovač."
662660
send: "Odeslat"
663-
abuseMarkAsResolved: "Označit nahlášení jako vyřešené"
664661
openInNewTab: "Otevřít v nové kartě"
665662
openInSideView: "Otevřít v bočním panelu"
666663
defaultNavigationBehaviour: "Výchozí chování navigace"
@@ -1962,6 +1959,7 @@ _notification:
19621959
receiveFollowRequest: "Obdržené žádosti o sledování"
19631960
followRequestAccepted: "Přijaté žádosti o sledování"
19641961
achievementEarned: "Úspěch odemčen"
1962+
login: "Přihlásit se"
19651963
app: "Oznámení z propojených aplikací"
19661964
_actions:
19671965
followBack: "vás začal sledovat zpět"

locales/de-DE.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -686,10 +686,7 @@ abuseReported: "Deine Meldung wurde versendet. Vielen Dank."
686686
reporter: "Melder"
687687
reporteeOrigin: "Herkunft des Gemeldeten"
688688
reporterOrigin: "Herkunft des Meldenden"
689-
forwardReport: "Meldung an fremde Instanz weiterleiten"
690-
forwardReportIsAnonymous: "Anstatt deines Benutzerkontos wird bei der fremden Instanz ein anonymes Systemkonto als Melder angezeigt."
691689
send: "Senden"
692-
abuseMarkAsResolved: "Meldung als gelöst markieren"
693690
openInNewTab: "In neuem Tab öffnen"
694691
openInSideView: "In Seitenansicht öffnen"
695692
defaultNavigationBehaviour: "Standardnavigationsverhalten"
@@ -2141,6 +2138,7 @@ _notification:
21412138
receiveFollowRequest: "Erhaltene Follow-Anfragen"
21422139
followRequestAccepted: "Akzeptierte Follow-Anfragen"
21432140
achievementEarned: "Errungenschaft freigeschaltet"
2141+
login: "Anmelden"
21442142
app: "Benachrichtigungen von Apps"
21452143
_actions:
21462144
followBack: "folgt dir nun auch"

locales/el-GR.yml

+1
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ _notification:
378378
renote: "Κοινοποίηση σημειώματος"
379379
quote: "Παράθεση"
380380
reaction: "Αντιδράσεις"
381+
login: "Σύνδεση"
381382
_actions:
382383
reply: "Απάντηση"
383384
renote: "Κοινοποίηση σημειώματος"

0 commit comments

Comments
 (0)