docs: cross-links updated to 3-level structure
This commit is contained in:
parent
d134886a4d
commit
094b3cc605
3 changed files with 217 additions and 2 deletions
39
CONTRIBUTING.md
Normal file
39
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Contributing
|
||||
|
||||
Vielen Dank für dein Interesse an der hightrusted CAPTURE API.
|
||||
|
||||
## Wer kann beitragen
|
||||
|
||||
Diese Repositorys werden primär von hightrusted GmbH gepflegt. Wir freuen uns
|
||||
über Bug-Reports, Verbesserungsvorschläge und Pull-Requests aus der Community.
|
||||
|
||||
## Issues
|
||||
|
||||
- **Bug-Report:** beschreibe das erwartete vs. tatsächliche Verhalten und liefere
|
||||
einen reproduzierbaren Code-Schnipsel mit. Bitte keine API-Keys mit posten.
|
||||
- **Feature-Request:** beschreibe den Use-Case — wir entscheiden, ob das Feature
|
||||
in das SDK gehört oder besser direkt gegen die API umgesetzt wird.
|
||||
|
||||
## Pull Requests
|
||||
|
||||
1. Fork und Branch (`feat/...`, `fix/...`, `docs/...`).
|
||||
2. Tests anpassen oder ergänzen.
|
||||
3. Lokale Build-Pipeline grün bekommen (siehe README).
|
||||
4. **Commits signieren** — sowohl GPG als auch X.509 werden akzeptiert. Unsignierte
|
||||
Commits werden nicht gemerged.
|
||||
5. PR öffnen mit klarer Beschreibung: Was ändert sich, warum, Breaking Change ja/nein.
|
||||
|
||||
## Code-Stil
|
||||
|
||||
Jede Sprache hat ihre eigene Konvention — siehe README des jeweiligen Repos.
|
||||
Tendenziell: Pflegt euch an den Standards, die wir bereits im Code verwenden.
|
||||
|
||||
## Lizenz
|
||||
|
||||
Beiträge gehen unter der MIT-Lizenz ein (siehe `LICENSE`). Mit dem Öffnen eines
|
||||
PRs bestätigst du, dass du das Recht hast, deinen Beitrag unter diese Lizenz zu
|
||||
stellen.
|
||||
|
||||
## Kontakt
|
||||
|
||||
`developers@hightrusted.net`
|
||||
147
README.md
147
README.md
|
|
@ -1,3 +1,146 @@
|
|||
# capture-php
|
||||
# hightrusted CAPTURE — PHP SDK
|
||||
|
||||
PHP SDK für die hightrusted CAPTURE API
|
||||
> **Status:** v0.1 Preview — API stabil, SDK in aktiver Entwicklung
|
||||
|
||||
Offizielles PHP-SDK für die [hightrusted CAPTURE API](https://capture.hightrusted.net) —
|
||||
forensische Web-Captures mit qualifiziertem Zeitstempel nach RFC 3161 / eIDAS Art. 41.
|
||||
|
||||
**Made in Germany.** Server in Deutschland. DSGVO-nativ. Kein US-Cloud-Anbieter
|
||||
in der Verarbeitungskette. Quelloffen unter MIT-Lizenz.
|
||||
|
||||
## Was die CAPTURE API tut
|
||||
|
||||
Sie nimmt eine URL entgegen, rendert die Seite vollständig (inkl. JavaScript),
|
||||
liefert sie als PDF/A zurück und versieht das Ergebnis mit einem qualifizierten
|
||||
Zeitstempel. Das Ergebnis ist gerichtsverwertbar und Jahre später noch
|
||||
verifizierbar — auch nachdem die Original-Seite längst offline ist.
|
||||
|
||||
Anwendungsfälle: Markenrechtsverletzungen dokumentieren, Auftragsbedingungen
|
||||
zum Buchungszeitpunkt sichern, Compliance-Nachweise für Behörden, Beweissicherung
|
||||
durch Anwälte und Sachverständige.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
composer require hightrusted/capture
|
||||
```
|
||||
|
||||
## Quickstart
|
||||
|
||||
```php
|
||||
<?php
|
||||
use Hightrusted\Capture\Client;
|
||||
|
||||
$client = new Client(['api_key' => 'ht_live_...']);
|
||||
|
||||
// Synchron — wartet bis zu 30 s auf das fertige PDF
|
||||
$capture = $client->capture(['url' => 'https://example.com']);
|
||||
|
||||
echo $capture->id . PHP_EOL;
|
||||
echo $capture->verifyUrl . PHP_EOL;
|
||||
echo $capture->timestamp->issuedAt . PHP_EOL;
|
||||
|
||||
// PDF herunterladen
|
||||
$capture->download('./beweis.pdf');
|
||||
```
|
||||
|
||||
## Authentifizierung
|
||||
|
||||
Bearer-Token mit API-Key. Key-Erzeugung im Dashboard:
|
||||
https://capture.hightrusted.net/dashboard/api-keys
|
||||
|
||||
```php
|
||||
// API-Key direkt
|
||||
$client = new Client(['api_key' => 'ht_live_...']);
|
||||
|
||||
// oder über Umgebungsvariable HIGHTRUSTED_API_KEY
|
||||
$client = new Client();
|
||||
```
|
||||
|
||||
## Asynchrone Captures + Webhooks
|
||||
|
||||
```php
|
||||
$job = $client->captureAsync([
|
||||
'url' => 'https://example.com',
|
||||
'webhook_url' => 'https://your-app.tld/webhooks/capture',
|
||||
]);
|
||||
// $job->status === 'queued'
|
||||
|
||||
// später, sobald der Webhook capture.ready geliefert hat:
|
||||
$capture = $client->get($job->id);
|
||||
$capture->download('./beweis.pdf');
|
||||
```
|
||||
|
||||
## Verify
|
||||
|
||||
```php
|
||||
$result = $client->verify('cap_...');
|
||||
echo $result->valid ? 'OK' : 'INVALID'; // OK
|
||||
echo $result->timestamp; // 2026-04-25T11:29:40Z
|
||||
```
|
||||
|
||||
## Rate Limits
|
||||
|
||||
Limits werden pro API-Key gemessen. Bei Überschreitung: HTTP 429 mit
|
||||
`Retry-After`-Header. Das SDK respektiert den Header automatisch und retried.
|
||||
|
||||
| Plan | req/min | Calls/Monat |
|
||||
|-----------|---------|-------------|
|
||||
| Developer | 5 | 100 |
|
||||
| Starter | 30 | 300 |
|
||||
| Growth | 120 | 2.000 |
|
||||
| Scale | 600 | 10.000 |
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- PHP 8.1 oder höher
|
||||
- `ext-curl`, `ext-json`
|
||||
- `guzzlehttp/guzzle` (wird via Composer installiert)
|
||||
|
||||
## Entwicklung
|
||||
|
||||
```bash
|
||||
git clone ssh://git@git.hightrusted.net:2222/hightrusted-capture/php.git
|
||||
cd php
|
||||
composer install
|
||||
vendor/bin/phpunit
|
||||
```
|
||||
|
||||
## Roadmap
|
||||
|
||||
- [ ] v0.1 — Basis-Client, Verify, Download
|
||||
- [ ] v0.2 — Retry-Logik, Webhook-Signatur-Verifikation, PSR-18-kompatibel
|
||||
- [ ] v0.3 — Laravel Service-Provider als separates Package
|
||||
- [ ] v1.0 — Stabile API, semantische Versionierung
|
||||
|
||||
## Verwandte Repositorys
|
||||
|
||||
**Im selben Produkt** ([`hightrusted-capture`](https://git.hightrusted.net/hightrusted-capture)):
|
||||
|
||||
- [`openapi`](https://git.hightrusted.net/hightrusted-capture/openapi) — OpenAPI 3.1 Spec (Single Source of Truth)
|
||||
- [`postman`](https://git.hightrusted.net/hightrusted-capture/postman) — Postman Collection
|
||||
- [`examples`](https://git.hightrusted.net/hightrusted-capture/examples) — Beispiel-Anwendungen
|
||||
- [`python`](https://git.hightrusted.net/hightrusted-capture/python) — Python-SDK
|
||||
- [`node`](https://git.hightrusted.net/hightrusted-capture/node) — Node.js-SDK
|
||||
|
||||
**Plattform-übergreifend** ([`hightrusted`](https://git.hightrusted.net/hightrusted)):
|
||||
|
||||
- [`platform`](https://git.hightrusted.net/hightrusted/platform) — Plattform-Übersicht, Architektur, Produkt-Liste
|
||||
- [`developer-portal`](https://git.hightrusted.net/hightrusted/developer-portal) — gemeinsame Konventionen, Auth, Errors, Rate-Limits
|
||||
- [`compliance`](https://git.hightrusted.net/hightrusted/compliance) — DSGVO, AGB-Templates, Whitepaper
|
||||
|
||||
## Support
|
||||
|
||||
- **Doku:** https://capture.hightrusted.net/api/docs
|
||||
- **Status-Page:** https://status.hightrusted.net
|
||||
- **Developer Support:** developers@hightrusted.net
|
||||
- **Sicherheitslücken:** siehe [SECURITY.md](./SECURITY.md)
|
||||
|
||||
## Lizenz
|
||||
|
||||
MIT — siehe [LICENSE](./LICENSE).
|
||||
|
||||
---
|
||||
|
||||
**hightrusted GmbH** — *The European Trust Infrastructure.*
|
||||
Made in Germany. DSGVO-nativ. eIDAS-konform.
|
||||
|
|
|
|||
33
SECURITY.md
Normal file
33
SECURITY.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# Security Policy
|
||||
|
||||
## Sicherheitslücken melden
|
||||
|
||||
Wenn du eine Sicherheitslücke in diesem SDK oder in der hightrusted CAPTURE API
|
||||
findest, **öffne kein öffentliches Issue**. Stattdessen:
|
||||
|
||||
- **E-Mail:** `security@hightrusted.net`
|
||||
- **PGP-Key:** veröffentlicht auf https://hightrusted.net/.well-known/security.txt
|
||||
|
||||
Bitte gib in der Meldung an:
|
||||
|
||||
- Betroffenes Repository / SDK-Version
|
||||
- Beschreibung der Schwachstelle und potenzielle Auswirkung
|
||||
- Schritte zur Reproduktion
|
||||
- Falls vorhanden: Proof-of-Concept-Code
|
||||
|
||||
Wir bestätigen den Eingang innerhalb von 48 Stunden und arbeiten an einer
|
||||
zeitnahen Behebung. Verantwortliche Offenlegung wird honoriert — wir nennen
|
||||
Reporter (auf Wunsch) in den Release-Notes.
|
||||
|
||||
## Unterstützte Versionen
|
||||
|
||||
Während der `v0.x`-Phase werden nur die jeweils aktuellste Minor-Version und
|
||||
deren letzte zwei Patch-Versionen aktiv mit Sicherheits-Updates versorgt.
|
||||
|
||||
Ab `v1.0` gilt: aktuelle Major + vorherige Major (12 Monate Übergangsfrist).
|
||||
|
||||
## Out of Scope
|
||||
|
||||
Diese Policy gilt für die SDKs in diesem Repository und die zugehörige
|
||||
hightrusted CAPTURE API. Für Schwachstellen in anderen hightrusted-Produkten
|
||||
(SIGN, ID, MEET, PAY, …) gilt jeweils die dortige `SECURITY.md`.
|
||||
Loading…
Add table
Reference in a new issue