こんにちは。アジャイルコーチとして、数々の開発現場を見てきましたが、多くのプロジェクトが「情報の迷宮」で立ち往生するのを目にしてきました。
「あの仕様書、どこだっけ?」「このプロジェクトのステータス、誰が持ってるの?」
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データを保存するところから始めてみてください。
あなたの開発体験が、この技術で少しでも軽やかになることを願っています。応援していますよ!