all repos — stealth-developers @ 08f8a3e5f9e51e0bd471256b6990af8a4ab6ff77

apps/web/src/views/PrivacyPolicy.vue (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
<script lang="ts" setup>
const lastUpdated = new Date(1781213982679);
</script>

<template>
	<div class="content">
		<section>
			<h1>Privacy Policy</h1>
			<p>
				Last updated:
				<time :datetime="lastUpdated.toISOString()">{{ lastUpdated.toLocaleDateString() }}</time>
			</p>

			<p>
				This Privacy Policy explains how we collect, use, store, and protect your information when
				you use our Discord bot (the "Bot") and its associated website (the "Website"). The Bot and
				Website are designed solely for use within the Stealth Developers community.
			</p>
		</section>

		<section>
			<h2>1. Data we collect</h2>
			<p>
				We only collect the minimum amount of data necessary to provide ticket-handling services and
				website authentication.
			</p>

			<h3>1.1. From the Discord Bot</h3>
			<p>
				When you interact with the bot (such as by opening a ticket or sending messages) in a ticket
				channel, we collect:
			</p>
			<ul>
				<li>The text content of messages sent within the ticket channel.</li>
				<li>Any files or images sent within the ticket channel.</li>
				<li>Your Discord user ID and username.</li>
			</ul>

			<h3>1.2. From the Website</h3>
			<p>When you log into or access the Website:</p>
			<ul>
				<li>We collect your Discord user ID and username for authentication purposes.</li>
				<li>
					We log standard connection data such as your IP address, browser user agent, and the
					date/time of your request.
				</li>
			</ul>
		</section>

		<section>
			<h2>2. How and why we use your data</h2>
			<p>
				Under the UK General Data Protection Regulation (UK GDPR), our lawful basis for processing
				this data is Legitimate Interests. Specifically, we process your data:
			</p>
			<ul>
				<li>To operate, maintain, and secure the ticket support system.</li>
				<li>
					To allow moderators to review support history, handle player reports, and resolve
					inquiries.
				</li>
				<li>To authenticate your access to the Website.</li>
				<li>
					To ensure the safety and security of our Roblox games and Discord server, and to prevent
					abuse.
				</li>
			</ul>
			<p>
				Your personal data is never sold to third parties, nor is it shared with anyone outside of
				the infrastructure necessary to host our services (such as our cloud hosting providers).
			</p>
		</section>

		<section>
			<h2>3. Data access and security</h2>
			<p>
				Access to saved ticket data and transcripts is strictly restricted. The only entities with
				access are:
			</p>
			<ul>
				<li>The ticket author (you).</li>
				<li>The moderators of Stealth Developers.</li>
				<li>The developer and host of the Bot/Website.</li>
			</ul>
			<p>
				We implement reasonable technical and organizational measures—such as secure database access
				controls, encrypted connections (HTTPS), and strict token management—to protect your data
				from unauthorized access.
			</p>
		</section>

		<section>
			<h2>4. Data retention and deletion</h2>
			<p>
				Ticket transcripts and associated attachments are kept for a maximum of one year from the
				creation of the ticket to allow for moderation history and appeal. After one year,
				attachments and text transcripts are pseudonymised by permanently removing all direct user
				identifiers (such as your Discord ID and username) from the record.
			</p>
			<p>
				You may request the immediate deletion of your ticket transcripts and associated attachments
				at any time. This can be done directly within Discord by using the
				<code>/ticket manage delete</code> command, or by contacting the Bot developer.
			</p>
		</section>

		<section>
			<h2>5. Children's Privacy</h2>
			<p>
				Our services are not intended for children under the age of 13. We do not knowingly collect
				personal data from children under 13. If you are a parent or guardian and believe that your
				child has provided us with personal data without your consent, please contact us so that we
				can take steps to delete it.
			</p>
		</section>

		<section>
			<h2>6. Your rights</h2>
			<p>Under UK GDPR, you have the following rights regarding your data:</p>
			<ul>
				<li>
					You have the right to request a copy of the personal data we hold about you. You can
					obtain this using the <code>/ticket manage copy</code> command in Discord.
				</li>
				<li>
					You have the right to request that we delete your personal data. You can trigger this
					using the <code>/ticket manage delete</code> command in Discord.
				</li>
				<li>
					You have the right to object to or ask us to restrict how we process your data. Exercising
					this right may require us to delete or close your active tickets, and decline you access
					to the Bot and Website.
				</li>
			</ul>
		</section>

		<section>
			<h2>7. Contact</h2>
			<p>
				If you have any questions about this Privacy Policy, or if you wish to make a manual data
				request, you can contact us:
			</p>
			<ul>
				<li>Email: <a href="mailto:apr@vt3e.cat">apr@vt3e.cat</a></li>
				<li>Discord: either by creating a ticket or direct messaging @vt3e.cat</li>
			</ul>
		</section>
	</div>
</template>

<style>
.content {
	max-width: 80ch;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

section {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	max-width: 80ch;
	padding-bottom: 1rem;

	position: relative;
	&:not(:last-child)::after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		height: 6px;
		border-radius: 1rem;
		background-color: hsla(var(--surface0) / 1);
	}

	p {
		margin-left: 1ch;
	}

	h3 {
		margin-left: 1ch;
	}

	ul {
		margin-left: 3ch;
		list-style-type: disc;

		li {
			margin-bottom: 0.25rem;
		}
	}
}
</style>