KDPfix
Back to KDPFix

Privacy Policy

Last updated:

1. Who is responsible

This policy describes the KDPFix application at kdpfix.rovelyx.app. The operator is the controller for the application data it determines to process. The controller and contact fields below have intentionally been left blank.

Service provider / controller name
Legal form
Postal address
Contact email
Registration number (if applicable)
Tax / VAT number (if applicable)
Privacy contact (if different)

Controller details and a working privacy contact have not yet been supplied. This policy is an incomplete operator template, not a claim of legal compliance. Paid checkout is disabled.

2. Visiting and free local checks

Your browser requests the website, fonts, scripts, PDF support files and the service-status endpoint from Cloudflare. Cloudflare necessarily handles connection information such as IP address, request time, URL, user agent and security metadata when serving and protecting those requests.

When you choose a PDF and run a free check, its bytes, page rendering, text measurements, rejection message and analysis remain in your browser. The application does not upload that PDF or rejection text as part of the free check. The status request is separate from manuscript processing.

The application saves the current PDF bytes, original filename, selected print settings, page measurements and report in browser IndexedDB. If a server report is later created, its secret access token and payment state are also kept locally. This is functional local storage, not anonymous storage. Anyone with access to your browser profile may be able to access it.

3. Requesting a preview or export

When you request a repair preview, the application sends your PDF, selected settings and page measurements over HTTPS to a Cloudflare Worker. It uploads the original PDF again when validating a preview or generating an export. For a free preview, the server checks a geometry-adjusted PDF internally and returns only a report manifest; your browser builds a flattened, low-resolution watermarked PDF for layout review. The free response does not contain the vector repaired PDF. Processing happens in Worker memory; the application does not write PDF contents to D1, R2 or another file-storage service.

D1 records contain a random report identifier, hashes of the access token and original file, selected settings, report findings and measurements, page count, eligibility state, preview state, quoted price, timestamps and, if used, a Stripe Checkout session identifier and payment state. Reports may include font-resource names. The raw rejection message and original filename are not sent to the server by this workflow.

Hashing is not anonymisation. A file hash can still identify a known document, and a hashed IP address is a pseudonymous technical identifier.

4. Purposes and legal bases

The intended purposes are to provide requested checks, previews and exports; preserve the current project; control report access; verify payments if enabled; prevent abuse; diagnose operational failures; and fulfil applicable obligations.

Where GDPR applies, processing necessary to provide a service you request is generally based on Article 6(1)(b). Proportionate rate limiting, access control and operational security are based on the operator's legitimate interest in protecting the service under Article 6(1)(f), subject to applicable balancing and objection rights. Processing specifically required by law relies on Article 6(1)(c). Optional consent-based processing would require a separate choice; the current application does not perform advertising or analytics tracking.

These bases describe the intended operation. The completed controller information and any jurisdiction-specific assessment must be supplied by the operator before treating this as a final notice.

5. Providers and international processing

Cloudflare provides hosting, HTTPS delivery, Worker execution and D1 database infrastructure. Processing may involve Cloudflare locations or subprocessors outside your country. The D1 database is configured for Western Europe placement; this is not a promise that all traffic, logs, replicas or backups remain only in the EU.

Stripe is integrated in the code but paid checkout is currently disabled. If enabled, Stripe receives checkout/payment details through its hosted page, and KDPFix sends a report identifier, product description and price. The application does not receive full card numbers. Stripe may process customer/payment information under its own roles and retention rules.

See the Cloudflare Privacy Policy, Cloudflare data processing terms and Stripe Privacy Policy. Applicable contractual safeguards and transfer mechanisms depend on the operator's arrangements with those providers; this template does not assert an arrangement that has not been checked.

6. Retention and deletion

DataApplication retention
Local manuscript and reportUntil replaced, cleared in the application/browser, or removed by the browser. No fixed automatic local expiry.
PDF bytes sent for processingUsed for the processing request in memory; no application file-storage copy is created.
Server report and accessAccess expires after 30 days from creation, extended once to 30 days from first verified payment if later. Expired rows are removed on subsequent API activity, with cleanup attempted at most once per hour. No traffic means deletion can be delayed.
Rate-limit identifiers and countsHourly counters expire two hours after that counter is first created. Physical deletion follows traffic-triggered cleanup.
Stripe webhook event identifiers90-day target retention, followed by the same cleanup process. Stripe's own records are governed separately.
Hosting logs, backups and provider recordsGoverned by the enabled Cloudflare/Stripe service and account settings. Application-row deletion does not promise immediate deletion of provider logs or backup copies.

“Clear local file” removes the current IndexedDB project; it does not itself delete server records or provider records. If a server report is present, use “Delete server report” while you still have its access token to request removal of the application's report row. That action does not remove independent rate-limit records, webhook identifiers, payment-provider records or backups.

7. Cookies, logs and automated checks

The application does not install advertising cookies or third-party analytics and does not send manuscripts to an AI provider. Functional browser storage is used as described above. Infrastructure or a future Stripe-hosted checkout may use their own security or functional technologies under their policies.

Application error logging is designed to exclude manuscript bodies, rejection text, card numbers and bearer-token values. Cloudflare may separately retain request/security metadata. Do not interpret this policy as a claim that no hosting logs exist.

Automated rules assess PDF geometry and certain technical characteristics. They do not determine eligibility for publishing on Amazon, assess legal rights in content or guarantee a business outcome. No profiling for advertising is performed by the application.

8. Your choices and rights

You can avoid server-side manuscript processing by using only the free local check. You can stop using the service, clear local storage, delete an available server report with its token and retain your original files independently. Refusing to upload a PDF prevents preview validation and clean export but does not prevent a free local check.

Depending on applicable law and circumstances, you may have rights of access, correction, erasure, restriction, objection and portability, and a right to complain to your competent data-protection supervisory authority. If processing relies on consent, you can withdraw it without affecting earlier lawful processing. These rights are subject to legal conditions and lawful retention obligations.

Use the privacy contact in section 1 once it has been completed. The operator may need proportionate verification before acting on a request. There is no working privacy-request mailbox supplied in this template, and this policy does not claim otherwise. Do not provide additional sensitive information merely to identify an anonymous report.

9. Security and sensitive material

Controls include HTTPS, random per-report access tokens stored as hashes on the server, file-hash matching for regeneration, bounded request size, parameterised database queries and server-side payment checks. No system or audit can guarantee absolute security.

This version is not designed as a repository for highly sensitive records or children's personal information. Do not upload material containing sensitive third-party data unless you have authority and have assessed whether this service is appropriate. There is no public report-sharing directory in the application.

10. Policy updates

This policy will be updated when the operator information, processing, providers or payment features change. The last-updated date above identifies this version. A future change does not automatically authorise a new use of your manuscript.

For service conditions, read the Terms of Use.