跳至內文
Thrive Church
目錄

Thrive Church App 隱私權政策

⚠️ DRAFT PREPARED FOR REVIEW. THIS IS NOT LEGAL ADVICE.

This draft was written by reading the app's actual database rules and source code, so that it describes what the software really does rather than what we hope it does. It has not been reviewed by a lawyer. Have it checked by Taiwan-qualified counsel before adopting or publishing it. Sections marked [GAP] describe things the app does not currently do; those should be fixed or the wording changed before this goes live.

⚠️ 本文件為送審草稿,不構成法律意見。

本草稿係依據 App 實際的資料庫規則與程式碼撰寫,目的是描述軟體真正的行為,而非我們期望的行為。本文尚未經律師審閱。發布或採用前,請交由具台灣律師資格者審核。標示 [GAP] 的段落說明 App 目前尚未做到的事項,應於正式上線前修正,或調整文字說明。

Last updated 最後更新:[DATE] Version 版本:[POLICY_VERSION]

Applies to: the Thrive Church member app (iOS and Android) and the staff web admin. 適用範圍: Thrive Church 成員 App(iOS 與 Android),以及同工使用的後台網站。

Languages. This policy is published in English and Traditional Chinese. The two versions are meant to say the same thing. If they ever differ, the [CONTROLLING_LANGUAGE] version governs.

語言。 本政策以英文與繁體中文發布。兩個版本的內容應為一致。若兩者有任何歧異,以 [CONTROLLING_LANGUAGE] 版本為準。

你最需要知道的五件事#

1. 同工無法閱讀你與其他成員的私人對話。 不論是私訊、你自己建立的群組,或小家聊天室都一樣。但有四個例外,全部列在第 6.1 節,請務必閱讀。

2. 有些你以為是私密的資料,其實不是。 每一個同工帳號都能讀取你完整的個人檔案、你傳給同工團隊的每一則訊息、你提出的每一份急難救助申請,以及你填寫的每一份講道回應表單。詳見第 5 節與第 6 節。

3.「匿名」代禱是對人匿名,不是對資料庫匿名。 其他成員與一般同工永遠看不到匿名代禱是誰發的。但你的身分仍儲存在該則貼文上,安全保護專員可以看到。若有絕對不能被任何人追溯到你的事,請不要用匿名代禱說。

4. 你的資料儲存在台灣境外,推播通知會顯示訊息預覽。 所有資料都存放在位於新加坡的 Supabase 伺服器。這屬於個人資料的國際傳輸,把你的資料送出台灣,第 8 節有完整說明。推播通知會帶著傳送者的名字與最多 140 個字的訊息內容,經過 Expo、Apple 與 Google 才抵達你的鎖定畫面。

5. 你可以刪除帳號,而且 30 天內不會刪除任何資料。 按下刪除後帳號立即停用,但直到第 30 天才真正銷毀,你隨時可以反悔。刪除只清理你的個人檔案,也僅止於個人檔案。你的名字會一字不差地留在你提交過的任何表單、你寫過的任何講道回應,以及從教會帳務匯入的奉獻紀錄上。第 11 節逐項列出什麼會保留、為什麼。


1. 關於本政策#

本政策說明 Thrive Church App 蒐集哪些個人資料、為什麼蒐集、誰看得到、保存多久,以及你可以要求我們做什麼。

我們盡量用一般人看得懂的話來寫。如果誠實的答案是「這是人工處理,不是軟體自動完成」,我們就會這樣寫。如果 App 沒有做到你合理認為它會做的事,我們也會說出來,並標示 [GAP]

規範我們如何處理你個資的法律,是台灣的《個人資料保護法》(以下稱個資法)。

2. 我們是誰,以及如何聯絡我們#

[LEGAL_ENTITY_NAME](以下稱「Thrive Church」、「我們」)為本 App 個人資料的負責單位。依個資法,我們是蒐集及利用你個資的非公務機關。

  • 登記地址:[REGISTERED_ADDRESS]
  • 網站:[CHURCH_WEBSITE]
  • 任何與你個資有關的事,包含第 11 節所有權利:[DATA_CONTACT_EMAIL]
  • 電話:[DATA_CONTACT_PHONE]
  • 安全疑慮、回報,或任何涉及兒少的事:[SAFEGUARDING_CONTACT_EMAIL]
  • 奉獻、收據與身分證字號相關:[FINANCE_CONTACT_EMAIL]

我們的目標是在 [RESPONSE_DAYS] 天內回覆個資相關請求。

3. 我們蒐集什麼,以及為什麼#

3.1 註冊時#

建立帳號需要你的電子郵件密碼。密碼由我們的登入服務處理,我們看不到。我們也會記錄你同意本政策的時間

接著會有一個兩步驟的初次設定表單,詢問以下欄位。我們逐欄列出,因為「只有名字是必填」並不是事實。

第 1 步,關於你的名字與聯絡方式:

欄位是否必填說明
你有哪些名字必填中文和英文都有、只有中文、或只有英文
英文名字若你選了有英文名字則必填你的顯示名稱
中文名字若你選了有中文名字則必填與英文名字分開儲存
名牌上的中文名字選填放全名,或只放名字。儲存於 name_tag_zh_short
性別必填選項只有「弟兄(男)」與「姊妹(女)」兩項。沒有「其他」,沒有「不願透露」,也沒有跳過這一題還能完成表單的方式
LINE ID選填
電話選填

第 2 步,關於你與 Thrive 的連結。這一步只在你第一次註冊時詢問:

欄位是否必填說明
小家必填三選一:我已經在某個小家裡、我想加入一個小家、目前主日聚會就好
哪一個小家若你選了已在小家裡則必填自由填寫小家名稱或小家長的名字。這是你自己告訴我們的,不是同工替你記錄的
會友身分必填三選一:我已是會友、想了解會友身份、目前還不需要

從後兩題的答案,我們還會儲存兩個你在畫面上看不到的標記:你是否在等待被安排進小家family_group_pending),以及是否需要就會友身分與你聯繫membership_interest)。回答「我已是會友」與「想了解會友身份」都會設定第二個標記,因為兩者都代表會有同工與你聯絡。回答「我已是會友」不會讓你在我們的紀錄中成為會友;那需要同工另行確認。

你可以略過整份表單。畫面角落有「略過」按鈕,若你使用它,以上都不會被蒐集。關於略過,有兩件事要誠實說明。第一,你無法只略過性別那一題:只要進入表單,性別就是必填,沒有辦法只填一部分而讓它留白。第二,略過幾乎是不可逆的。「我的」頁面中的「更新我的資料」只會重新開啟第 1 步,而且不含性別欄位,所以一旦略過,性別、小家的回答與會友身分的回答就只能請同工協助設定。少了這些資料,同工審核也可能需要更久。

我們用這些資料辨識你的身分、讓其他成員找得到你、讓小家長能聯絡你;至於性別,則用來決定你能看到哪些分性別的小家聊天室與分性別的代禱牆。

關於大頭照。「我的」頁面可以選擇或拍攝一張照片,你的帳號也有存放照片的欄位。但目前那張照片只存在於你手機這次開啟 App 的記憶體中。沒有任何程式上傳它、儲存它,關掉 App 就消失了。因此我們目前並未持有任何人的大頭照。若這一點改變,我們會先更新本政策。

關於語言。你選擇英文或中文,以及淺色或深色模式,都只儲存在你自己的裝置上,從不會傳送給我們。

由同工(而非你本人)記錄的資料包括:你的帳號是否已核准、你是慕道友或會友、你的角色(成員、服事團隊或同工),以及在同工確認後你實際被編入的小家

App 任何地方都不會詢問你的出生日期或年齡。請見第 12 節。

3.2 你的小家#

若你加入小家,我們會記錄你的小家成員身分與你在其中的角色(小家長、副小家長、同工或成員)。

小家長可以記錄每次聚會的出席狀況:你是否出席,以及未出席時的原因(生病、工作、旅行、家庭或其他)與一段文字備註。這是由小家長記錄關於你的資料,不是你自己填的。連續缺席會出現在同工的關懷名單中,好讓人能主動關心你。

我們也會儲存上傳到小家的照片與圖說。

小家聚會地點通常是某位成員的家,因此我們會儲存地址與出入資訊,例如大門密碼。

3.3 訊息#

App 內有幾種不同的訊息功能,保護程度並不相同。這點很重要,請務必閱讀第 6 節。

  • 私訊、你建立的群組、小家聊天室。我們儲存訊息文字、照片、GIF、貼圖或投票、傳送者、時間、這則訊息回覆的是哪一則,以及表情回應。
  • 傳給同工團隊的訊息。這是你與 Thrive 同工團隊之間的獨立對話。
  • 收回的訊息。你有 15 分鐘可以收回自己傳出的訊息。收回會做什麼、不會做什麼,請見第 6.1 節。

尚未啟用的功能。已讀回條、正在輸入的提示、@標註、保留編輯前版本,以及連結預覽快取,程式都已寫好但尚未開啟,目前資料庫上也不存在這些資料表。這些功能沒有記錄任何資料。我們刻意不在本政策其餘部分描述它們,因為描述我們並未持有的資料只會誤導你。在其中任何一項上線之前,我們都會先更新本政策。

3.4 代禱#

  • 代禱牆貼文,包含全教會與小家的,以及你是否選擇匿名。貼文 7 天後會從牆上消失,但紀錄會保留,見第 9 節。
  • 誰為某則貼文禱告,以及表情回應。
  • 若你封鎖某位發文者,會記錄封鎖

3.5 你的私人靈修內容#

講道筆記、禱告日誌、讀經進度、讀經反思、儲存的經文與畫記、背誦經文、書籤。

這些只屬於你。資料庫對每一項的規則就只有一行:只有你,沒有別人。其他成員看不到,小家長看不到,同工看不到,安全保護專員也看不到。

有一個例外你需要知道:小家內的讀經進度會分享給該小家。你的小家成員都能看到每個人的名字,以及各自完成的章節。

3.6 你填寫的表單#

  • 聯絡卡。任何人都能填寫,包含尚未註冊的訪客。我們蒐集姓名、電子郵件、電話、LINE ID、你如何得知我們、你有興趣的項目,以及任何文字備註。
  • 小家報名。姓名、性別、電話、LINE ID、使用語言、是否為會友、你是大學生、研究生或非學生、預計在台北停留多久、方便的聚會時間,以及你住在台北哪一區
  • 會友班、受洗意願、retreat 報名等。
  • 講道回應表單。你的姓名、LINE ID、你寫下的反思、你選擇的下一步,以及代禱事項。

同工會針對這些表單記錄跟進紀錄:誰聯絡你、何時、用什麼方式、結果如何,以及文字備註。

3.7 關懷與急難救助申請#

若你向教會尋求協助,我們會儲存你選擇的需要類型(經濟、醫療、就業、家庭、關懷或其他)、你自己寫下的描述急迫程度、你希望我們如何聯絡你,以及你是否同意分享給你的小家長

同工接著會針對你的個案記錄聯絡日誌,包含文字備註。

申請無法匿名提出,一定會附上你的身分。

3.8 奉獻與奉獻收據#

若你登錄一筆奉獻,我們會儲存日期、金額、幣別、用途,以及你銀行帳號的末五碼

若你希望我們代為上傳台灣的奉獻扣抵資料,我們會詢問你的收據抬頭、郵寄地址、聯絡方式,以及身分證字號或居留證號。這完全是自願的,且僅用於收據用途。

我們也會匯入一份由教會會計軟體匯出的試算表,並將交易與成員對應。該檔案可能包含未使用 App 的奉獻者。

3.9 通知#

若你允許通知,我們會儲存你裝置的推播權杖裝置型號名稱(例如「iPhone 15」)、平台,以及你的通知偏好與勿擾時段

3.10 安全與紀錄#

  • 稽核日誌,記錄管理操作:誰、對什麼、做了什麼、何時。不記錄訊息內容。
  • 頻率限制紀錄:每次你傳送訊息、提出回報或發布代禱事項的時間戳記。
  • 你對某則訊息提出的回報,其中包含該訊息的凍結副本。
  • 安全保護標記與法律保留。見第 6.6 節。

3.11 我們不蒐集什麼#

以下都是真實而且少見的選擇,值得具體說明:

  • 沒有分析工具、沒有追蹤、沒有當機回報。App 內沒有 Google Analytics、Firebase、Sentry、Amplitude 或任何類似服務。我們不記錄你造訪哪些畫面或停留多久。
  • App 不記錄你的 IP 位址。資料庫雖有相應欄位,但沒有任何程式寫入。兩個例外列在第 7 節:你搜尋 GIF 時 Google 會收到你的 IP,以及後台網站的代管商會記錄同工的 IP。
  • 沒有廣告、不販售資料、不為行銷分享資料。永遠不會。
  • 不追蹤位置。
  • 不存取你的通訊錄、行事曆或相簿,除了你主動選擇上傳的照片。

4. 我們持有這些資料的法律依據#

依個資法,我們視資料類型分別依據以下事由:

  • 你的同意。你在註冊時同意本政策,我們會記錄時間。填寫選填欄位本身,就是你選擇提供該項資訊。
  • 我們與你的關係。經營一間你所屬的教會,必須有成員名冊、小家名單,以及聯絡你的方式。
  • 特定法律義務。奉獻與收據紀錄的存在,是因為稅務法規要求。
  • 保護他人生命、身體、自由或財產。這是我們保存安全紀錄與執行法律保留的依據,即使你已要求刪除帳號也適用。

健康資料適用更高標準。個資法將醫療與健康資料列為特種個資。在本 App 中,這包括急難救助申請中的醫療內容、出席紀錄中「生病」的原因,以及兒童的過敏與醫療備註。我們的依據是你主動選擇告訴我們,而且只發生在你尋求協助的情境中。你完全不需要提供健康資料就能使用本 App。

關於宗教信仰的說明。台灣個資法並未將宗教信仰列為特種個資,因此依台灣法律,本 App 中大部分資料屬於一般個人資料。但我們清楚知道,實務上這裡幾乎所有內容(你的出席、代禱事項、受洗意願、讀經習慣)都是你信仰與私人屬靈生活的紀錄。無論法律要求為何,我們都以敏感資料的標準對待。若你居住在歐盟或英國,請來信 [DATA_CONTACT_EMAIL],我們會依當地法律更嚴格的標準處理你的資料。

5. 教會內部誰看得到你的資料#

5.1 各種角色#

角色說明
你本人你自己的帳號。
已核准成員教會已核准的成員,可看到成員通訊錄。
小家長小家的小家長、副小家長與同工,僅限自己的小家。
同工教會同工帳號,是日常最廣的存取權限。
安全保護專員一位或多位指定人員,處理回報與安全事務。這是唯一只能直接在資料庫中授予的權限,無法從後台網站設定,因此沒有任何同工能自行取得。
財務處理奉獻的少數人員,由最高管理者從後台網站授權。
最高管理者決定誰擁有財務權限、以及誰也是最高管理者的人。兩者都由最高管理者從後台網站授予。系統會拒絕移除最後一位最高管理者。
資料庫管理者持有我們資料庫帳號金鑰的人。

5.2 各角色看得到什麼#

左右滑動可看到所有欄位。

你的資料其他成員你的小家長同工安全保護專員財務
姓名(若日後有儲存照片,照片亦同,見 3.1)
電話、LINE ID、電子郵件預設隱藏預設隱藏一律可見
性別不可同小家內可見
角色、會友身分、所屬小家
私人對話與私訊僅對話中的人不可不可僅透過回報或經稽核之調閱不可
傳給同工團隊的訊息不可不可全體同工可見
具名代禱貼文
匿名代禱貼文隱藏隱藏隱藏可解除匿名隱藏
筆記、禱告日誌、畫記不可不可不可不可不可
讀經進度不可
小家出席紀錄不可
講道回應表單不可不可全體同工可見
聯絡卡與報名表單不可不可全體同工可見
關懷與急難救助申請不可僅在你同意時全體同工可見
同工對你個案的紀錄不可不可不可
奉獻紀錄與帳號末五碼不可不可不可不可
你的身分證字號或居留證號不可不可不可不可可,且每次查看都會記錄
你提出的回報不可不可不可不可不可
活動出席回覆可,僅自己的只看得到總數只看得到總數可,且看得到每個人

5.3 大家常覺得意外的幾件事#

  • 你的聯絡方式預設對其他成員隱藏。通訊錄會顯示你的姓名,若我們有儲存照片,照片也會顯示;但不會顯示電話、LINE ID 與電子郵件,除非設定被更改。[GAP] App 目前沒有可以自行更改此設定的開關。若你希望顯示聯絡方式,或想確認它確實隱藏,請寄信到 [DATA_CONTACT_EMAIL],同工會為你設定。
  • 同工看得到你完整的個人檔案。通訊錄對其他成員隱藏你的電話,但不會對同工隱藏。同工也可以編輯你的個人檔案。
  • 投票不是不記名的。你在聊天室投票,同一個聊天室的所有人都看得到你投給誰。
  • 活動出席回覆看起來像匿名,其實不是。其他成員只看得到總數,你也只看得到自己的答案。但每一個同工帳號都看得到誰回覆了「參加」、「也許」或「無法參加」。同工用它來規劃活動,但你應該知道這同樣不是不記名的。
  • 你無法讀取自己提出的回報。你回報一則訊息後,回報只會送到安全保護專員,而且只有安全保護專員能打開它,包含你寫下的原因。其他人都讀不到,你自己也讀不到。我們知道這聽起來很奇怪,原因是回報的設計刻意不留下任何能反推出回報者身分的線索。若你需要留存自己回報過什麼,請在送出前自行記下來,或寄信到 [SAFEGUARDING_CONTACT_EMAIL]。
  • 小家的讀經進度是共享清單。小家每個人都看得到誰完成了哪些章節。
  • 小家長可以查看並記錄你的出席狀況,包含原因與備註。

6. 敏感部分的直白說明#

6.1 成員之間的私人訊息#

同工無法閱讀你的私訊、你建立的群組,或小家聊天室。這是由資料庫本身強制執行,不是靠 App 自律。App 早期版本確實讓同工能讀取,後來已刻意移除。

只有四個例外,你應該全部知道:

  1. 安全保護專員在有安全考量時,可以調閱你參與過的所有對話完整紀錄。包含你收回的訊息,以及已被保存期程隱藏的訊息。每一次調閱都會寫入稽核日誌。
  2. 對話中的任何人都可以回報訊息。回報會凍結該訊息的副本並送交安全保護專員。這是私人內容能傳達給有權處理者的既定管道。
  3. 在聊天室裡的同工,跟其他人一樣讀得到訊息。同工身分不會帶來額外權限,在場才會。
  4. 管理我們資料庫的人在技術上讀得到任何資料。資料庫的金鑰能打開整個資料庫。我們嚴格限制誰持有金鑰,但沒有任何軟體規則能杜絕。你的訊息並非端對端加密。

當你收回訊息時,其他人只會看到一則「訊息已收回」的提示。文字對所有人隱藏,包含你自己。訊息並未被抹除,紀錄仍依第 9 節的期程保存,安全保護專員仍可調閱。收回時限為 15 分鐘。已經送達他人手機的通知無法收回

同工無法從聊天室移除訊息。App 沒有這個功能。若某則訊息讓你不安,請使用回報功能。

6.2 傳給同工團隊的訊息#

這與你和其他成員的對話是分開的,而且保護方式不同

每一個同工帳號都能讀取其中每一則訊息。這是刻意設計的共用信箱,目的是不讓任何一個人單獨承擔困難的對話,也確保一定有人回覆。這是刻意的當責設計,但代表當你寫信給「同工團隊」時,你是寫給全體同工,而不是某一個人。

同工回覆時,你手機上的通知會刻意不顯示任何預覽內容

6.3 代禱事項,包含匿名選項#

匿名是對人匿名,不是對系統匿名。

當你匿名發文時,你的身分會對其他成員、小家長與一般同工隱藏。這項隱藏由資料庫強制執行,而且在我們自己的檢視中發現繞過方式後,已加強過兩次。

但你的身分確實儲存在該則貼文上,而且安全保護專員看得到。我們保留這個連結,是因為代禱事項有時正是有人告訴我們自己身陷危險的方式,我們必須有能力找到那個人。

所以坦白說:匿名代禱很適合分享你不希望其他成員與你本人連結起來的事。但它不是用來說「絕對不能被任何人追溯到我」的事。若你有這樣的需要,請當面找人談。

若你封鎖匿名發文者,封鎖動作在我們這端完成,你不會因此得知對方是誰。

6.4 關懷與急難救助申請#

這是 App 中最敏感的資料之一。若你告訴我們你的疾病、失業、債務或家庭危機,那段文字會被儲存。

  • 每一個同工帳號都能完整讀取你的申請,包含自由文字。
  • 只有在你勾選分享給小家長時,小家長才讀得到。這個勾選是真正有效的控制項。
  • 同工會針對你的個案保留聯絡日誌與自己的備註。你無法讀取該日誌。我們認為你應該看得到關於你自己的紀錄,這已列入待改善項目。
  • 關懷申請沒有任何刪除方式,你不能刪,同工也不能刪。見第 9 節。
  • 申請無法匿名。

6.5 奉獻、帳號末五碼與身分證字號#

這是唯一一個一般同工完全沒有權限的領域。沒有過濾後的檢視,沒有摘要,什麼都沒有。

只有少數財務人員能看到奉獻紀錄,而財務權限只能由最高管理者授予,一般同工帳號無法授權。

你的身分證字號或居留證號受到 App 中最強的保護:

  • 只有在你要求我們代為上傳奉獻扣抵資料時才會蒐集。
  • 儲存前會先加密,金鑰保存在獨立的保險庫中,因此即使取得資料庫副本也讀不出來。
  • 每一次解密都會寫入稽核日誌,記錄是誰、在何時。
  • 若你撤回同意,該號碼會被抹除,不只是標記為停用。這是真正的刪除,而且立即生效。

收據 PDF 存放在私有空間,你只能存取自己資料夾內的檔案。這些 PDF 可能包含你的身分證字號。

6.6 安全保護回報、標記與法律保留#

任何人都可以回報訊息。當你回報時:

  • 該訊息的副本會在當下被凍結,因此事後的編輯或收回都無法改變證據。
  • 回報只會送到安全保護專員。一般同工完全看不到回報,你在送出之後也看不到。資料庫中關於「誰能讀取回報」只有一條規則,就是「你是不是安全保護專員」。提出回報不會給你一份副本,也沒有進度頁面。若你需要留存紀錄,請在送出前自行記下來。
  • 系統會自動對撰寫該訊息的人設定法律保留。法律保留代表在解除之前,他參與過的任何內容都不會被任何人刪除。
  • 被回報的人不會被告知,App 也刻意不提供任何得知的方式。這是為了保護身為回報者的你。

若你正處於法律保留中並要求刪除帳號,我們會拒絕並保留資料,依據個資法中為保護他人生命、身體、自由或財產的例外規定。我們不一定會告訴你原因,因為說明可能會暴露回報者的身分。

駁回回報永遠不會自動解除法律保留。解除一律是安全保護專員另行、明確且留下紀錄的操作。

7. 教會以外誰會收到你的資料#

我們不販售你的資料,也絕不為行銷分享。以下是唯一會收到部分資料的公司,以及他們確切收到什麼。

對象收到什麼所在地
Supabase全部。我們整個資料庫、登入系統、檔案儲存與伺服器功能。新加坡
Expo每次你收到通知時,包含你的推播權杖、傳送者姓名,以及最多 140 個字的訊息內容。美國
Apple 與 Google同樣的通知內容,因為 Expo 是透過 Apple 與 Google 的通知服務送達。美國及其他地區
Google(Tenor)若你搜尋 GIF:你的 IP 位址與你輸入的關鍵字。你的裝置會直接連線 Google。之後任何人滑到那個 GIF,也會從 Google 載入。美國
Crossway(ESV)僅有經文章節的參照字串。沒有帳號、沒有裝置、沒有任何識別資訊。多數請求根本不會送達他們,因為我們有快取。美國
Vercel同工使用後台網站時的標準網頁紀錄(IP、瀏覽器、頁面)。成員資料不會經過 Vercel 的伺服器;後台網站是從同工的瀏覽器直接連線 Supabase。美國
Apple App Store 與 Google Play商店本身蒐集的標準應用程式派送與當機資訊。美國及其他地區

推播通知的預覽值得特別停下來看。若有人傳私訊給你,該訊息的前 140 個字與傳送者姓名,會先送到 Expo,再到 Apple 或 Google,最後出現在你的鎖定畫面。這代表每一次都有真實的訊息內容離開台灣。若你不希望如此,可以在手機系統設定中關閉通知預覽,或在 App 內關閉訊息通知。

常被誤以為我們有用、但其實沒有的服務。教會有使用會計軟體,但 App 並未與之連線;是由人工匯出試算表再上傳。也沒有任何分析或廣告服務。

Google Drive:已建置,但未啟用。這裡我們寧可講精確,而不是講得讓你安心。App 中確實有一套完成的設計,可以把較舊的小家照片搬到 Google Drive 資料夾以節省儲存空間。每張照片都有一個欄位記錄它存放在哪裡,其中一個可能的值就是「Google Drive」,另外還有三個伺服器函式與一個共用的 Drive 輔助檔案是為此而寫的。這一切都沒有開啟。程式碼自己就是這樣寫的,從來沒有任何一張照片被搬移過,目前每一張小家照片都存放在我們自己的私有空間。一旦啟用,教會照片將會傳送給 Google,這是把你的資料傳出台灣、交給一家新公司的新增傳輸。在那之前,我們一定會先更新本政策並告知你。

8. 資料儲存地點與跨境傳輸#

你的資料儲存在台灣境外。我們的資料庫服務商在台灣沒有資料中心。我們的專案運作於新加坡,位於 Amazon Web Services 的亞太(新加坡)機房。服務商為美國註冊公司,這代表美國的法律程序原則上可能觸及這些資料。

這屬於個人資料的國際傳輸,把資料送出台灣,個資法要求我們明白告知,而不是含糊帶過。使用本 App 即代表你同意你的資料存放於新加坡,並且在通知的部分會經過美國。

推播通知會經過位於美國的伺服器,詳見第 7 節。

[GAP] 上述地區是依據我們自己程式碼中儲存的連線設定得出的。本政策發布前,管理 Supabase 專案的人員應在 Supabase 後台再次確認,因為後台才是最終依據,而這是法律上必須正確揭露的事項。

在使用這套軟體的前提下,我們沒有辦法將資料留在台灣境內。若你無法接受,請在建立帳號前先來信 [DATA_CONTACT_EMAIL]。

9. 我們保存多久#

會自動刪除的部分#

只有訊息。每天台北時間凌晨 03:17 會執行一項排程,做兩件事:

  • 聊天訊息與傳給同工團隊的訊息,滿 12 個月後對所有人隱藏
  • 再過 24 個月後永久銷毀,總計 36 個月。

在第 12 個月到第 36 個月之間,該訊息對你、其他成員與同工都不可見。只有安全保護專員能調閱,且一定會留下稽核紀錄。

以下情形不會刪除:該訊息已被標記為安全保護紀錄、有未結案的回報、撰寫者處於法律保留中,或該對話中任何一人處於法律保留中。

我們無限期保存的部分#

其餘全部。我們寧可直說,也不願暗示一套我們其實沒有執行的期程。

資料保存多久備註
聊天與同工團隊訊息12 個月後隱藏,36 個月後銷毀自動執行
代禱牆貼文無限期7 天後從牆上消失,你也可以刪除自己的貼文,但紀錄仍保留
聊天與小家照片無限期承載照片的訊息被銷毀時,照片檔案不會一併移除
聯絡卡與報名表單無限期
關懷與急難救助申請無限期完全沒有刪除機制
小家出席紀錄無限期
講道回應與讀經紀錄無限期
奉獻與稅務紀錄政策上為 7 年[GAP] 軟體並未強制執行。實務上會無限期保存,直到人工刪除
稽核日誌永久刻意如此,任何人都無法編輯或刪除
安全標記、回報,以及法律保留中的任何資料無限期刻意如此,只能由特定且留有紀錄的決定解除
推播權杖直到你登出、要求刪除帳號或移除 App
你傳送訊息或發文的時間紀錄無限期[GAP] 原設計為 7 天後清除,但清理排程尚未啟用

若你希望某項資料提早刪除,請來信 [DATA_CONTACT_EMAIL],會由專人手動處理。

10. 我們如何保護你的資料#

  • 資料列層級安全性。資料庫中每一張表都有自己的存取規則,資料庫在每一次查詢時都會檢查。即使程式有錯,App 也無法取得你無權查看的資料。
  • 傳輸加密。App 與伺服器之間所有流量均經加密。
  • 身分證字號在儲存時加密,金鑰與資料分開存放,且每次解密都會留下紀錄。
  • 私有檔案儲存。聊天照片、小家照片與奉獻收據都存放在私有空間,規則綁定你在該聊天室、小家或帳號的身分。
  • 權限分離,但有一個例外要說清楚。一般同工帳號無法自行升級任何權限。財務權限與最高管理者身分可以從後台網站授予,但只有已經是最高管理者的人做得到,而且每一次授予與移除都會寫入稽核日誌。身為財務團隊成員,並不能把別人也加入財務團隊。安全保護專員是唯一完全無法從後台網站授予的權限,必須直接在資料庫設定,因此沒有人能自行取得閱讀回報與解除代禱匿名的能力。
  • 無法被竄改的稽核日誌。管理操作會被永久記錄,任何帳號(包含最高管理者)都無法修改或刪除。
  • 回報內容對一般同工保密,避免提出回報反而暴露回報者。
  • 沒有第三方分析工具,因此你的使用行為不會在別處留下另一份副本。

我們無法保證的事#

  • 訊息並非端對端加密。任何持有資料庫金鑰的人都讀得到。我們嚴格限制金鑰的持有者。
  • 有一個儲存空間是公開的:同工為教會發布的圖片。請不要把它當作私密空間。聊天照片、小家照片與奉獻收據都存放在私有空間。
  • 通知預覽會離開我們的系統,如第 7 節與第 8 節所述。
  • 有心的同工可以對他看得到的任何畫面截圖或複製。沒有任何軟體規則能阻止。這正是我們依角色限制同工權限,並記錄管理操作的原因。

11. 你的權利,以及如何行使#

依個資法第 3 條,你有五項權利。以下說明每一項今天實際如何運作,包含哪些需要人工處理而非按一個鍵。

查詢與閱覽的權利#

請寄信到 [DATA_CONTACT_EMAIL]。

[GAP] App 內沒有「下載我的資料」按鈕。現存唯一的匯出工具是給安全保護專員使用的安全工具,只涵蓋訊息,並不是回應此請求的方式。同工會從資料庫手動彙整你的資料。我們的目標是在 [RESPONSE_DAYS] 天內回覆。

請求製給複製本的權利#

同樣管道:[DATA_CONTACT_EMAIL]。我們會以可讀格式提供。依個資法規定,我們可能酌收合理必要費用。

補充或更正的權利#

有些你可以自己改。在 App 中前往「個人檔案」,再點「更新我的資料」。你可以修改英文名字、中文名字、你使用哪些名字、名牌上的中文名字要如何呈現、LINE ID 與電話。

以下需要同工協助:電子郵件(這是你的登入帳號)、性別、所屬小家、會友身分與角色。「更新我的資料」畫面刻意不包含性別欄位,因此註冊時設定之後,你無法自行更改。請來信 [DATA_CONTACT_EMAIL],由同工為你更正。

請求停止蒐集、處理或利用的權利#

App 內有幾項確實有效的控制項:

  • 通知偏好與勿擾時段,在「設定」中。
  • 已讀回條,預設關閉。
  • 封鎖其他成員。封鎖後你在各處都看不到對方的訊息,雙向的私訊也會停止。
  • 奉獻收據同意。撤回後你的身分證字號會立即被抹除。
  • 是否將關懷申請分享給小家長。每一次申請都可個別選擇。
  • 匿名發布代禱事項。請留意第 6.3 節說明的實際限制。

[GAP] 沒有「撤回同意但保留帳號」的整體選項。我們只在註冊時記錄一次同意,而唯一能完全停止我們處理你資料的方式,就是刪除帳號。若你希望我們停止某項特定利用,請來信 [DATA_CONTACT_EMAIL],我們會以人工方式處理。

請求刪除的權利#

在 App 中:設定,帳號,刪除我的帳號。

時間點會發生什麼
按下刪除的當下帳號立即停用。你從通訊錄中消失,成員功能停止,通知停止。不刪除任何資料。你的姓名、電子郵件、照片、電話與 LINE ID 都原封不動。
接下來 30 天冷靜期。你可以重新登入取消,或請同工代為取消。一切完全復原。
第 30 天執行永久刪除。個人檔案被清除,帳號被移除,附屬於帳號的資料全部銷毀。

第 30 天會被銷毀的:你的聊天訊息、代禱牆貼文、個人筆記、禱告日誌、讀經紀錄、儲存的經文、奉獻資料(含加密的身分證字號)、推播權杖與通知設定。

會保留的,以及原因。請仔細讀這一段,因為「刪除」並不代表你的名字每一處痕跡都消失了。

第 30 天的排程只清理一個地方:你的個人檔案。你的姓名、中文名字、電子郵件、照片、電話與 LINE ID 會在那裡被覆寫,你的登入帳號也會被銷毀。其他地方,原本指向你個人檔案的紀錄只是不再指向它,連結被切斷。那些紀錄裡若含有你的名字,那是當時以純文字輸入或複製進去的,切斷連結並不會動到純文字。因此:

  • 稽核日誌。「是誰執行了某項管理操作」的連結會與你脫鉤。條目本身永久保留,而若你是某項操作的對象,你帳號的內部識別碼仍可能出現在其中。
  • 安全回報與標記。回報者與被回報者都不再連結到任何帳號。被回報訊息的凍結副本會一字不差地保留,回報者當時寫下的原因也會保留。安全證據必須比相關帳號存續更久,而一份被抽掉證據的回報,對必須處理它的人來說毫無用處。
  • 聯絡卡、小家報名、會友與受洗意願、retreat 報名,以及你提交過的每一份表單。這些都保留你當時填寫的姓名、電子郵件、電話與 LINE ID 的快照。這份快照是刻意留下的,為的是不讓表單在當事人日後更改資料時失真,也正因如此,刪除個人檔案不會移除它。你寫下的文字會保留,上面的姓名也會保留。
  • 講道回應表單。同理。你當時填寫的姓名與 LINE ID 會保留在回應上,連同你寫下的反思與代禱事項。
  • 財務紀錄。從教會會計軟體匯入的奉獻紀錄,會保留會計軟體當時記載的奉獻者姓名,原文照留。與你帳號的連結被切斷,姓名沒有。你自己登錄的奉獻紀錄會保留金額、日期與銀行帳號末五碼,但不再連結到你。你的奉獻資料(含加密的身分證字號)則會被銷毀。
  • 若你處於法律保留中,則全部保留。此時刪除會被完全拒絕,請求會等到保留解除後才處理。

若你在意這件事,請告訴我們。寄信到 [DATA_CONTACT_EMAIL],同工可以逐筆手動把你的姓名從上述殘留紀錄中移除,但基於安全或稅務理由必須保存的部分除外。這是人工作業,但我們寧可做,也不願讓你日後才發現。

按下刪除前,有兩件事你應該知道:

  • [GAP] 若你曾提出過關懷或急難救助申請,自動刪除目前無法完成。這是我們已發現但尚未修復的缺陷。你的帳號第一天仍會停用,但最終刪除需要同工手動完成。請來信 [DATA_CONTACT_EMAIL],我們會協助處理。
  • 若你是家長且孩子有兒童事工的紀錄,刪除你的帳號也會刪除孩子的紀錄,包含過敏與醫療備註。請先與我們聯繫。

還有一項誠實的說明。少數帳號是在 App 舊版本下提出刪除請求的,舊版會立即抹除個人檔案資料。若你當時取消了請求,你的使用權限會恢復,但姓名、電子郵件、照片、電話與 LINE ID 已經消失,你應該被要求重新輸入過。對此我們深感抱歉,此問題現已修正。

若你對我們的處理方式不滿意#

請先來信 [DATA_CONTACT_EMAIL]。若未能解決,你可以向台灣個人資料保護的主管機關提出申訴,或依個資法向法院請求救濟。

[GAP] App 內目前沒有隱私聯絡表單。訊息功能是傳給同工團隊,並非隱私申訴管道,而且本身也適用保存期程。請使用電子郵件。

12. 兒童與青少年#

這裡必須說得直接,因為這是 App 最薄弱的部分。

App 不詢問任何人的年齡,也無法判斷帳號是否屬於未成年人。沒有出生日期欄位、沒有年齡欄位,也沒有任何年齡驗證。這件事很重要,因為我們的群體包含大學新生,其中有些人未滿 18 歲。

實際上這代表:

  • 未滿 18 歲的人註冊方式與成年人完全相同,並以自己的名義同意本政策。
  • 沒有任何功能以年齡設限。年齡不會限制通訊錄、聊天或代禱事項。
  • [GAP] App 內沒有家長或監護人同意的流程。

若你未滿 18 歲並使用本 App,請與你的家長或監護人談談,並來信 [DATA_CONTACT_EMAIL] 告訴我們,讓我們能以更謹慎的方式處理你的資料,並回答他們的疑問。

若你是家長或監護人,希望查看、更正或刪除未滿 18 歲子女的資料,請來信 [DATA_CONTACT_EMAIL],我們會優先處理。

兒童事工報到。資料庫中存在一套兒童報到的設計,包含孩子的姓名、出生日期、過敏、醫療備註、飲食需求、特殊需要、拍照同意、可接送人員與緊急聯絡人。此功能並未啟用,App 沒有任何部分會寫入這些資料。目前其中沒有任何一筆兒童紀錄。在啟用之前,我們一定會先更新本政策,並正式徵求家長同意。

通報兒少相關疑慮。請立即聯絡 [SAFEGUARDING_CONTACT_EMAIL]。我們在兒少安全、法定通報與證據保存方面的做法,載於另一份《數位資料保存與安全保護政策》。

13. 本政策的變更#

若我們修訂本政策,會更新最上方的日期,並在 [POLICY_URL] 發布新版本。

若某項變更對你有實質影響,例如我們開始蒐集新類型的資料,或將資料傳送到新的地方,我們會在生效前於 App 內告知你。

[GAP] App 目前沒有請你重新同意更新後政策的機制。你的同意只在註冊時記錄一次,不會隨本文件更新。在我們建置該機制之前,我們會在 App 內公告重大變更,並給你時間離開或提出疑問。

14. 有問題#

任何問題都歡迎來信:[DATA_CONTACT_EMAIL]

我們寧願回答一個尷尬的問題,也不希望你自行揣測最壞或最好的情況。

PLACEHOLDERS TO FILL IN 待填寫項目#

Every placeholder used above, in one list. Nothing should be published while any of these remains. 以下為上文使用的所有預留欄位。任一項未填妥前,均不得發布。

PlaceholderWhat it needsWho can supply it
[LEGAL_ENTITY_NAME]The church's registered legal entity name, in English and Chinese. This is the data controller under the PDPA, so it must be the registered body, not the trading name.Church administration
[REGISTERED_ADDRESS]Registered address of that entity.Church administration
[CHURCH_WEBSITE]Public website address.Church administration
[DATA_CONTACT_EMAIL]A monitored address for all data requests. Appears many times. Should be a role address, not a personal one, so it survives staff changes.Church administration
[DATA_CONTACT_PHONE]Contact phone number.Church administration
[SAFEGUARDING_CONTACT_EMAIL]Address that reaches the safeguarding officer. May be the same as above only if the officer monitors it.Safeguarding officer
[FINANCE_CONTACT_EMAIL]Address for giving, receipts, and ID number questions.Finance
[CONTROLLING_LANGUAGE]Which language version governs if the English and the Chinese ever disagree. Recommend Traditional Chinese for a Taiwan-registered entity whose members read Chinese and whose disputes would be heard by a Taiwanese court. Must match the answer given in the Terms of Service.Church administration, with counsel
[RESPONSE_DAYS]Target response time for data requests. The PDPA sets outer limits for responding to review and copy requests; pick a number the church can actually meet.Church administration, with counsel
[DATE]Date the final version is adopted.Church administration
[POLICY_VERSION]Version number, for example 1.0.Church administration
[POLICY_URL]The public URL where this policy is hosted. This must also be entered into the app's church settings as privacy_url. If that field is blank, the app shows no privacy policy link at all, which fails both Apple's review requirement and the PDPA notice duty. Treat publishing this URL as a launch gate.Church administration

NOTES FOR REVIEWERS 審閱者注意事項#

Not part of the policy. Remove before publishing. These are the points where the draft had to describe something imperfect, or where a claim depends on something that must be checked first.

Verify before publishing:

  1. Supabase region: resolved as Singapore, still confirm it. mobile/supabase/.temp/pooler-url points at aws-1-ap-southeast-1, which is AWS Asia Pacific (Singapore). Section 8 now states Singapore. Confirm in the Supabase dashboard before publishing, because the dashboard is authoritative and this is a PDPA cross-border disclosure.
  2. Chat features: resolved. Read receipts, typing indicators, @mentions, edit history, and link previews are NOT live. Migration 0109_chat_modern_features.sql is headed "NOT YET APPLIED" and a read-only probe of the live database confirms it: chat_read_receipts, chat_message_edits, chat_mentions, chat_message_links, and link_previews all return PGRST205 (table not in the schema cache), while chat_messages, chat_polls, event_rsvps, message_reports, and message_reactions return 42501 (table exists, no anon grant). Section 3.3 now describes only what is live and marks the rest as not yet active. Also note 0110_guest_response_intake.sql is likewise not applied. The link-preview-images public bucket is created by 0109, so it does not exist either; section 10 has been corrected from two public buckets to one.
  3. Confirm who can decrypt a national ID. Migration 0050 gated this on any staff account; 0066 narrowed it to finance only. Section 6.5 asserts finance only. Verify against the live database, because this is the single highest-consequence claim in the document.
  4. Confirm migrations 0066, 0067, 0069, 0071, 0073, and 0074 are applied. All carry stale "UNAPPLIED" headers, and sections 5, 6.5, and 10 depend on them.

Contradictions between the app's own wording and what it enforces. These should be fixed in code, not papered over in the policy:

  1. The sermon response form is the most serious. The option reads "No, please do not share, only for Pastor David to see." The database policy sr_select_staff in 0007_sermons_announcements.sql:140 lets every staff account read every response. The app makes a promise it does not keep. Either narrow that policy to a named person, or change the wording on the form. Until one of those happens, section 5.2 of this policy contradicts the form the member is looking at while they type.

Defects this draft had to disclose as [GAP]:

  1. Account deletion cannot complete for anyone who has submitted a care request. benevolence_requests.user_id is declared on delete restrict (0015_benevolence.sql:45), and the nightly purge has no per-row exception handling. The first such account in the queue will fail the whole batch, so every other member scheduled for purge that night is blocked too, every night, silently. This means the 30-day deletion promise is currently not delivered. Highest priority fix.
  2. directory_visibility has no user interface. The database honours it correctly, but nothing in the app or the admin site can change it. A privacy control that a member cannot reach is not a control.
  3. There is no member-facing data export. Access and copy requests are fully manual, assembled by hand from at least eight tables.
  4. There is no consent withdrawal or re-consent flow. Consent is a single timestamp set once at sign-up and never updated when the policy changes.
  5. No age or minor handling exists at all. Given a student population, this is a real exposure and section 12 could only describe the absence.
  6. rate_limit_prune() is never scheduled, so the behavioural log grows without limit.
  7. The retention sweep deletes message rows but not storage objects, so chat photos outlive the destroyed messages that carried them.
  8. Retention Tier 2 (7 years for financial records) has no code behind it. Nothing deletes financial data, and nothing protects it from ad hoc deletion either.
  9. Members cannot read the staff contact log about their own care case, which sits awkwardly against the PDPA right to review one's own data.
  10. Gender is mandatory at signup, binary, and unchangeable by the member. mobile/app/onboarding/index.tsx:137-150 marks it required: true with exactly two options and no opt-out, and the edit branch omits the field entirely so the member can never correct it themselves. Section 3.1 had to disclose this.
  11. A member cannot read a report they filed. message_reports has one SELECT policy, officer-only (0034_retention_reports_flags.sql:169). Sections 5.2, 5.3, and 6.6 now say so.
  12. Every staff account sees individual event RSVPs. event_rsvps_select_staff (0080_polls_and_event_rsvps.sql:21). Members only ever get the aggregate, which makes it easy to assume staff do too.
  13. Contact snapshots survive account deletion verbatim. app.purge_deleted_accounts() (0108_account_deletion_fix.sql:276-326) scrubs public.profiles and nothing else. form_submissions.contact_name/email/phone/line_id (0011_forms.sql:28-31), sermon_responses.name/line_id (0007_sermons_announcements.sql:85-86), qb_donations.donor_name_qb (0010_giving.sql:69), and message_reports.message_body (0034:156) are all plain text behind on delete set null foreign keys, so the link is cut and the text is not. Section 11 now discloses this precisely.
  14. Nothing writes profiles.photo_url. The Profile screen's photo picker calls updateUser({ photoUrl }), which is in-memory session state only (mobile/app/_layout.tsx:185-187). There is no avatars bucket. So the app appears to support profile photos and does not store one.

Consistency note: the existing mobile/docs/safeguarding-and-retention-policy.md section 7 states that staff "cannot read member↔member chat". That is true of the app, but it is silent on database administrator access. Section 6.1 of this policy discloses it. Consider aligning the safeguarding document so the two do not appear to disagree.