Confluence でアプリケーション リンクを削除する場合の代替方法

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Fisheye および Crucible は除く

要約

この記事では、Confluence インスタンスのアプリケーション リンクの構成の削除を Confluence の UI で行えなかった場合に利用する代替方法を説明します。 

診断

ソリューション セクションの手順を実行する前に、次のスクリーンショットにあるように アプリケーション リンクの設定ページ (Confluence の管理ページ > [アプリケーション リンク]) でアプリケーション リンク構成の削除をお試しください。

引き続きアプリケーション リンクを削除できない場合はこのナレッジベースのソリューション セクションに進んでください。

原因 

Confluence のデータベースで一部のデータが破損しているため、Confluence の UI からアプリケーション リンクを削除できない。

解決状況

後者のソリューションはリスクが高いため、以降のソリューションは順に試していただくことをおすすめします。


  • REST エンドポイントを使ってアプリケーション リンクを削除する

  1. まず、次の curl コマンドを実行し、Confluence インスタンスで構成されている既存のアプリケーション リンクを特定します。

    curl -s -X GET -u <username>:<password> -H "Accept: application/json" <Confluence-Base-URL>/rest/applinks/1.0/listApplicationlinks | python -mjson.tool
    結果の例
    {
        "list": [
            {
                "application": {
                    "displayUrl": "https://jiratest.com",
                    "iconUri": "http://localhost:8090/s/en_GB/6441/7d28db648b08c18ff79fe305b2da56665a84a1fc/5.2.2/_/download/resources/com.atlassian.applinks.applinks-plugin:applinks-images/images/config/logos/128x128/128jira.png",
                    "iconUrl": "http://localhost:8090/s/en_GB/6441/7d28db648b08c18ff79fe305b2da56665a84a1fc/5.2.2/_/download/resources/com.atlassian.applinks.applinks-plugin:applinks-images/images/types/16jira.png",
                    "id": "79f0263c-a3a5-323b-870c-aea1895cabeb",
                    "isPrimary": true,
                    "isSystem": false,
                    "link": [
                        {
                            "href": "http://localhost:8090/rest/applinks/1.0/applicationlink/79f0263c-a3a5-323b-870c-aea1895cabeb",
                            "rel": "self"
                        }
                    ],
                    "name": "JIRA (jiratest.com)",
                    "primary": true,
                    "rpcUrl": "https://jiratest.com",
                    "system": false,
                    "typeId": "jira"
                },
                "configuredInboundAuthenticators": [],
                "configuredOutboundAuthenticators": [
                    "com.atlassian.applinks.api.auth.types.TrustedAppsAuthenticationProvider"
                ],
                "entityTypeIdStrings": [
                    "jira.project"
                ],
                "hasIncomingAuthenticationProviders": true,
                "hasOutgoingAuthenticationProviders": true,
                "isSystem": false,
                "webItems": [],
                "webPanels": []
            }
        ]
    }
    
    

    (info) 上記の例でのアプリケーション リンクの ID は次のとおりです。 "79f0263c-a3a5-323b-870c-aea1895cabeb"


  2. 次に、削除したいアプリケーション リンクの ID を特定したら、次のコマンドを実行して対象のアプリケーション リンク構成を削除します。

    curl -X DELETE -u <username>:<password> -H "Accept: application/json" <Confluence-Base-URL>/rest/applinks/1.0/applicationlink/<JIRA-ApplicationLink_ID>


    t

  • Confluence のデータベースからアプリケーション リンクを手動で直接削除

    データベースの操作方法が不明な場合はデータベース管理者にお問い合わせください。先に進む前にデータベースの完全なバックアップを作成するようにしてください。これらの SQL コマンドはいくつかの環境でテストを行い、意図したとおりに動作することを確認しています。

    しかしながら、特定の状況や Confluence の新しいバージョンでは動作しない場合があります。これは、Confluence のデータベース構造に変更が行われている可能性があるためです。このため、問題が発生し、過去に動作していた状態の Confluence データベースへの巻き戻しを行う必要がある場合に備えたデータベース バックアップが必須です。

  1. 削除したいリンクを記録します (例: 上の診断セクションの例の場合は JIRA)。
  2. Confluence をシャットダウンします。
  3. データベースの完全なバックアップを作成します
  4. アプリケーション リンクの ID を見つけます。

    SELECT * FROM BANDANA WHERE BANDANAKEY LIKE 'applinks%' and BANDANAVALUE like '%your link's name from Step 1%';

    (info) アプリケーション リンクの ID は次のような形式です。"cfce37ac-1125-3e7f-93dd-17c643239204"

  5. ステップ 4 で得られたアプリケーション リンクのすべてのエントリを見つけます。ID はご自身のもので置き換えてください。

    SELECT * FROM BANDANA WHERE BANDANAKEY LIKE '%cfce37ac-1125-3e7f-93dd-17c643239204%';
  6. 対象のアプリケーション リンク ID のエントリを削除します。

    DELETE FROM BANDANA WHERE BANDANAKEY LIKE '%application link id from Step 5%';
  7. applinks.global.application.ids を更新して削除を完了します。

    SELECT BANDANAVALUE FROM BANDANA WHERE BANDANAKEY = 'applinks.global.application.ids';

    出力の例は次のとおりです。

     <list>
      <string>e0bea7ec-e080-35fd-b856-c942ed2f83cc</string>
      <string>cfce37ac-1125-3e7f-93dd-17c643239204</string>
      <string>034974ba-a91a-33aa-a715-aa15aa133374</string>
     </list>

    ステップ 5 の ID を含む行を削除します。

    UPDATE BANDANA SET 
    BANDANAVALUE = '<list>
      <string>e0bea7ec-e080-35fd-b856-c942ed2f83cc</string>
      <string>034974ba-a91a-33aa-a715-aa15aa133374</string>
     </list>'
    WHERE BANDANAKEY = 'applinks.global.application.ids';
  8. Confluence を再起動します。
    注意: Confluence のキャッシュをフラッシュしても、削除されたアプリケーション リンクの問題を防ぐことはできないため、再起動が必要です。


認証方法として信頼済みアプリを利用している場合、次の手順も必要です。

ここをクリックして展開...
  1. 削除する TRUSTEDAPP 名を見つけます。

    select BANDANAKEY from BANDANA where BANDANAVALUE like '%your JIRA's name from Step 1%';

    bandanakey では次のエントリのような値が返されます。 

    • "com.atlassian.oauth.serviceprovider.ServiceProviderConsumerStore.consumer.jira:16308251"; or 

    • "com.atlassian.oauth.serviceprovider.ServiceProviderConsumerStore.con66d3e071c01d166956f9d950ecf12ae5"

    (info) 末尾の太字部分の文字列を記録します。 

  2. 次のクエリを実行し、信頼済みアプリケーション構成を取り除きます。数字の文字列は自身のもので置き換えます。

    select * from TRUSTEDAPP where NAME like '%16308251%'; 
    // Make a note of the trustedappid of the link you are deleting and replace it in this query:
    select * from TRUSTEDAPPRESTRICTION where TRUSTEDAPPID = 12345;
    // confirm the above both returns what you expect, and when comfortable:
    delete from TRUSTEDAPPRESTRICTION where TRUSTEDAPPID = 12345;
    delete from TRUSTEDAPP where NAME like '%16308251%';
  3. キーストア構成を取り除きます。数字の文字列は自身のもので置き換えます。

    select * from KEYSTORE where ALIAS like '%16308251%';
    // confirm this returns what you expect, and when comfortable:
    delete from KEYSTORE where ALIAS like '%16308251%';
  4. OAuth 構成を取り除きます。数字の文字列は自身のもので置き換えます。

    select * from BANDANA where BANDANAVALUE like '%16308251%';
    select * from BANDANA where BANDANAKEY like '%16308251%';
    // confirm this returns what you expect, and when comfortable:
    delete from BANDANA where BANDANAVALUE like '%16308251%';
    delete from BANDANA where BANDANAKEY like '%16308251%';
最終更新日: 2023 年 1 月 16 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.