| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- <?php
- declare(strict_types=1);
- // GET api/v1/manifest.php
- // Returns the release the calling instance should install.
- //
- // This endpoint requires a valid instance token; release metadata is not
- // public.
- require_once __DIR__ . "/../../includes/api.php";
- require_once __DIR__ . "/../../includes/releases.php";
- manageApiRequireMethod("GET");
- $instance = manageApiAuthenticate();
- manageInstanceTouch($instance["id"], []);
- $latest = manageReleaseLatestVersion();
- if ($latest === "") {
- manageApiFail(404, "Es ist kein gültiges Release veröffentlicht.");
- }
- try {
- $release = manageReleaseResolve($latest);
- } catch (Throwable $exception) {
- manageLogError("Manifest resolve failed", [
- "instance" => $instance["id"],
- "version" => $latest,
- "error" => $exception->getMessage(),
- ]);
- manageApiFail(500, $exception->getMessage());
- }
- manageApiSendJson(200, [
- "success" => true,
- "latest" => $release["version"],
- "version" => $release["version"],
- "package_url" => $release["package_url"],
- "sha256" => $release["sha256"],
- "size" => $release["size"],
- "published_at" => $release["published_at"],
- ]);
|