Draf kebijakan privasi · bilingual
Kebijakan Privasi
Privacy Policy
Draf ini merangkum alur yang tampak pada kode situs. Ini belum merupakan kebijakan final, nasihat hukum, atau jaminan kepatuhan. Semua fakta yang belum diketahui ditandai untuk dikonfirmasi.
Bahasa Indonesia
Status: draf lokal untuk peninjauan. Tanggal berlaku: [isi setelah disetujui].
1. Operator dan kontak
Situs ini tersedia di dafenka.com. Nama yang tampil adalah Dafenka Rythan; identitas hukum operator/pengendali data belum dipastikan: [nama individu atau badan]. Kontak publik saat ini adalah hai@dafenka.com; konfirmasikan apakah alamat ini menjadi kanal resmi permintaan privasi.
2. Informasi yang diproses
- Penyimpanan browser (Web Storage). Kode menyimpan pilihan bahasa, tema, gerakan, posisi audio, sebagian status antarmuka, dan penanda kunjungan di
localStorage.sessionStoragedipakai untuk variasi tampilan dan status animasi selama sesi tab. Kode preferensi ini tidak mengirim nilainya ke server. Web Storage berbeda dari HTTP cookie. - Buku tamu. Nama opsional; pesan wajib. Formulir membatasi nama hingga 32 karakter dan pesan hingga 160. Jika API bersama tidak aktif saat halaman memulai, kiriman disimpan di browser pengirim. Jika API aktif, nama, pesan, dan waktu kiriman dikirim ke backend dan dapat dibaca pengunjung situs lain. Kode API menyimpan paling banyak 500 kiriman terbaru; ini batas jumlah, bukan janji masa retensi. Kode tidak menetapkan kedaluwarsa otomatis untuk daftar kiriman.
- Pencegahan spam buku tamu. Saat API bersama aktif, server memakai nilai pertama pada header
X-Forwarded-Forsebagai kunci pembatasan laju, atauanonbila nilainya kosong. Kunci itu diberi TTL 30 detik; IP tidak ditambahkan ke isi kiriman buku tamu. Apakah platform memvalidasi header atau mencatat IP/permintaan pada log, dan berapa lama, belum diketahui. - Lokasi. Hanya setelah Anda menekan tombol untuk menghitung jarak, browser dapat meminta izin lokasi. Kode menghitung jarak ke Bogor di perangkat Anda; fitur ini tidak mengirim koordinat ke endpoint situs atau menyimpannya. Browser/perangkat dapat memproses lokasi sesuai pengaturannya.
- Pemutar Spotify. Iframe tidak dibuat sampai Anda memilih “Muat pemutar Spotify”. Memilih “Jangan muat” mencegah iframe dibuat pada tampilan halaman itu. Pilihan muat/tolak tidak disimpan untuk kunjungan berikutnya. Setelah dimuat, Spotify dan penyedia terkaitnya dapat memakai cookie/teknologi serupa serta memproses informasi penggunaan menurut kebijakan mereka. Lihat Ketentuan Spotify Embed, Kebijakan Privasi Spotify, dan Kebijakan Cookie Spotify.
- Font dan pustaka eksternal. Halaman meminta font Google Fonts dan pustaka animasi Lenis dari jsDelivr saat dimuat. Permintaan tersebut dapat menyertakan informasi teknis seperti alamat IP dan informasi browser, bergantung pada request dan konfigurasi penyedia. Pemilik mengonfirmasi tidak ada analytics atau cookie pihak ketiga lain selain yang mungkin digunakan melalui Spotify; pemeriksaan kode juga tidak menemukan tag analytics/pixel atau penulisan cookie oleh halaman. Baca Kebijakan Privasi Google dan Kebijakan Privasi jsDelivr. Kebijakan jsDelivr menjelaskan data penggunaan CDN dan penyedia CDN yang membantu melayani permintaan.
- Tautan keluar. Tautan media sosial dan situs lain tidak sama dengan embed otomatis; jika Anda membukanya, layanan tujuan memproses data menurut kebijakannya sendiri.
3. Berbagi data dan penyedia
Kiriman buku tamu dikirim ke backend hanya jika API bersama aktif. Repo menyebut fungsi serverless Vercel dan paket Vercel KV/Upstash, tetapi penyedia produksi yang benar-benar aktif, lokasi data, subprosesor, dan praktik log perlu dikonfirmasi: [isi nama penyedia, negara/region, dan tautan kebijakannya]. Spotify, Google Fonts, dan jsDelivr menerima permintaan browser sebagaimana dijelaskan di atas. Tidak ditemukan fitur penjualan data pada kode yang diperiksa; praktik operasional dan penilaian hukumnya belum dikonfirmasi.
4. Penyimpanan dan penghapusan
Data localStorage bertahan sampai Anda menghapus data situs di browser; sessionStorage umumnya berakhir saat sesi tab selesai. Untuk buku tamu bersama, kode membatasi daftar hingga 500 kiriman tanpa jadwal kedaluwarsa otomatis. Kode memiliki route penghapusan admin, bukan tombol hapus mandiri bagi penulis. Penghapusan dari log dan cadangan, masa retensinya, serta prosedur pembersihan perlu ditetapkan: [isi periode dan proses yang benar-benar berlaku].
5. Permintaan privasi
Untuk meminta salinan, koreksi, atau penghapusan kiriman, atau mengajukan pertanyaan privasi, hubungi [kanal privasi yang disetujui; mungkin hai@dafenka.com setelah dikonfirmasi]. Proses verifikasi, tenggat jawaban, pengecualian, dan hak yang tersedia bergantung pada hukum yang berlaku dan harus ditentukan sebelum publikasi. Sebelum iframe dibuat, Anda dapat memilih “Jangan muat”; pilihan tersebut hanya berlaku pada tampilan halaman saat ini.
6. Umur, wilayah, dan perubahan
Kode tidak menetapkan batas umur atau gerbang umur. [Tentukan apakah situs ditujukan kepada anak, batas umur, dan cara menangani data anak.] Yurisdiksi yang berlaku juga belum ditetapkan: [isi hukum dan forum yang relevan]. Perubahan kebijakan akan dicantumkan dengan tanggal revisi setelah disetujui.
English
Status: local review draft. Effective date: [complete after approval].
1. Operator and contact
This site is available at dafenka.com. The displayed name is Dafenka Rythan; the operator/data controller’s legal identity has not been confirmed: [individual or legal entity]. The public contact currently shown is hai@dafenka.com; confirm whether it is the official privacy-request channel.
2. Information processed
- Browser storage (Web Storage). The code stores language, theme, motion, audio position, some interface states, and a visit marker in
localStorage.sessionStorageis used for a display variation and animation state during the tab session. This preference code does not send those values to the server. Web Storage is different from an HTTP cookie. - Guestbook. A name is optional; a message is required. The form limits names to 32 characters and messages to 160. If the shared API is inactive when the page initializes, an entry is stored in the submitting browser. If the API is active, the name, message, and submission time are sent to the backend and can be read by other site visitors. The API keeps at most the 500 most recent entries; this is a count limit, not a retention promise. The code sets no automatic expiry for the entry list.
- Guestbook abuse prevention. When the shared API is active, the server uses the first value in the
X-Forwarded-Forheader as a rate-limit key, oranonif empty. That key has a 30-second TTL; the IP is not added to the guestbook entry. Whether the platform validates the header or logs IPs/requests, and for how long, is unknown. - Location. Only after you press the distance button may your browser ask for location permission. The code calculates distance to Bogor on your device; this feature does not send coordinates to a site endpoint or store them. Your browser/device may process location under its own settings.
- Spotify player. The iframe is not created until you choose “Load Spotify player.” Choosing “Don’t load” prevents the iframe from being created for that page view. The load/decline choice is not saved for later visits. Once loaded, Spotify and related providers may use cookies or similar technologies and process usage information under their policies. See Spotify’s Embed Terms, Privacy Policy, and Cookie Policy.
- External fonts and library. The page requests Google Fonts and the Lenis animation library from jsDelivr when it loads. Those requests may include technical information such as IP address and browser information, depending on the request and provider configuration. The owner confirms that the site uses no analytics or other third-party cookies beyond those that Spotify may use; the code review also found no analytics/pixel tags or page-written cookies. Read Google’s Privacy Policy and jsDelivr’s Privacy Policy. jsDelivr’s policy describes CDN usage data and the CDN providers that help serve requests.
- Outbound links. Social-media and other links are not automatic embeds; if you open one, the destination service processes your data under its own policy.
3. Sharing and service providers
Guestbook entries are sent to a backend only when the shared API is active. The repository refers to Vercel serverless functions and the Vercel KV/Upstash package, but the production provider, data location, subprocessors, and logging practices must be confirmed: [name the active providers, country/region, and applicable policy links]. Spotify, Google Fonts, and jsDelivr receive browser requests as described above. No data-sale feature was found in the reviewed code; operational practice and legal status have not been confirmed.
4. Storage and deletion
localStorage remains until you clear this site’s browser data; sessionStorage generally ends with the tab session. The shared guestbook code limits the list to 500 entries without an automatic expiry schedule. It has an admin deletion route, not a self-service delete control for authors. Deletion from logs and backups, their retention periods, and the cleanup process must be set: [complete the periods and actual process].
5. Privacy requests
To request a copy, correction, or deletion of a guestbook entry, or to ask a privacy question, contact [approved privacy channel; possibly hai@dafenka.com after confirmation]. Identity checks, response times, exceptions, and available rights depend on applicable law and must be set before publication. Before the iframe is created, you can choose “Don’t load”; that choice applies only to the current page view.
6. Age, jurisdiction, and updates
The code sets no minimum age and has no age gate. [Decide whether the site is directed to children, any age limit, and how children’s data is handled.] The applicable jurisdiction is also not set: [identify the relevant law and forum]. After approval, policy changes will be posted with a revision date.