【入門編】Confluenceの「カスタムメタデータ(Content Properties)」開発実践!ページに独自のタグや属性を付与して高度なカスタム検索アプリを作る方法 – プロジェクト・ナレッジ管理活用バイブル

こんにちは。アジャイルコーチとして、数々の開発現場を見てきましたが、多くのプロジェクトが「情報の迷宮」で立ち往生するのを目にしてきました。

「あの仕様書、どこだっけ?」「このプロジェクトのステータス、誰が持ってるの?」
Confluenceのラベル機能だけで管理しようとして、結局検索結果がノイズだらけになっているチームも多いはずです。

今日は、Confluenceを単なる「Wiki」から、「エンジニアリングを加速させる強力なデータベース」へと進化させる秘術をお教えします。それがContent Properties(カスタムメタデータ)の活用です。

—

なぜ「ラベル」ではダメなのか?

Confluenceの標準ラベルは便利ですが、文字列の羅列に過ぎません。これでは、以下のような高度なクエリが書けません。

  • 「期限が今週以内で、かつ重要度がP0のタスク一覧」
  • 「特定エンジニアが担当し、ステータスが『レビュー中』のドキュメント」

Content Propertiesを使えば、JSON形式で任意の属性をページに埋め込めます。これにより、Confluenceを「構造化されたAPIサーバー」として扱えるようになるのです。

—

実装の基礎:Content Propertiesを操る

Confluence REST APIを使って、ページにデータを埋め込んでみましょう。ここでは、Pythonで最もシンプルに実装する手順を解説します。

1. 準備するもの

  • ConfluenceのAPIトークン: [Atlassianの管理画面](https://id.atlassian.com/manage-profile/security/api-tokens)から発行してください。
  • ページID: メタデータを付与したいページのID。

2. HelloWorld:メタデータの保存

まずは、ページに「プロジェクトのステータス」と「優先度」を埋め込んでみます。

import requests
import json

設定情報
BASE_URL = “https://your-domain.atlassian.net/wiki/rest/api”
EMAIL = “your-email@example.com”
API_TOKEN = “your-api-token”
PAGE_ID = “123456789” # 対象のページID

付与したいカスタムデータ(JSON)
custom_data = {
“key”: “project-info”, # 名前空間のようなもの
“value”: {
“status”: “In Progress”,
“priority”: “High”,
“due_date”: “2023-12-31″
}
}

API実行
url = f”{BASE_URL}/content/{PAGE_ID}/property”
auth = (EMAIL, API_TOKEN)
headers = {“Content-Type”: “application/json”}

response = requests.post(url, auth=auth, headers=headers, json=custom_data)

if response.status_code == 200:
print(“メタデータの保存に成功しました!”)
else:
print(f”失敗: {response.text}”)

3. データの取得(検索の要)

保存したデータは、APIで取得可能です。この構造化データがあれば、独自の検索アプリ(ReactやVueで作るポータルサイト)から、特定条件のページだけを抽出して表示するダッシュボードが作れます。

—

現場で「震えるほど役立つ」3つの注意点

技術的な実装は簡単ですが、運用設計を間違えると「データがゴミ化」します。以下の3点を守ってください。

1. キー(Key)の命名規則を厳格化する
Content Propertiesは全体で共有される領域です。`my-data`のような曖昧なキーではなく、`team-alpha:project-metadata`のように、チーム名や目的をプレフィックスとして必ず含めてください。
2. データ型を統一する
JSONの中身がバラバラだと、後で集計する際に地獄を見ます。日付ならISO 8601形式、ステータスなら定数(enum)を使うなど、ドキュメント化してチームで合意しましょう。
3. UIに依存させない
Confluence上のマクロ(ユーザーが見る画面)に表示するのはあくまで「結果」です。「ConfluenceはAPIのデータソースであり、ダッシュボードは外側に作る」という発想を持つと、情報のサイロ化から解放されます。

—

次のステップ:あなたのチームのベロシティを最大化する

これをマスターしたあなたのチームは、もう「ドキュメントを探す時間」を浪費しません。

  • 自動化のヒント: GitHub Actionsと連携させ、PRがマージされたらAPIを叩いてConfluenceのステータスを自動更新する。
  • ポータル化のヒント: Vercel + Next.jsで簡易的な社内検索ポータルを作り、ConfluenceのAPIを叩いて「今週やるべきタスク一覧」を美しく可視化する。

難しく聞こえるかもしれませんが、一度この「構造化」の快感を覚えると、もう元のWikiには戻れません。まずは今日、1つのページに小さなJSONデータを保存するところから始めてみてください。

あなたの開発体験が、この技術で少しでも軽やかになることを願っています。応援していますよ!

タイトルとURLをコピーしました