aethex-forge/client/pages/docs/DocsCli.tsx
MrPiglr 28d9410a9f
Batch 2: Fix documentation pages content density
- Reduced heading sizes (text-3xl→text-2xl)
- Simplified descriptions 50-60%
- Normalized verbose technical text
- Fixed: DocsGettingStarted, DocsPlatform, DocsApiReference, DocsCli, DocsExamples, DocsIntegrations, DocsCurriculum

TypeScript validation: No new errors introduced
2026-01-11 03:52:55 +00:00

282 lines
9.5 KiB
TypeScript

import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
TableCaption,
} from "@/components/ui/table";
import { Button } from "@/components/ui/button";
import { Link } from "react-router-dom";
import {
Terminal,
Cpu,
PlayCircle,
Settings,
Activity,
CloudLightning,
Shield,
ArrowRight,
} from "lucide-react";
const commands = [
{
command: "aethex init [name]",
description: "Scaffold a new project with opinionated defaults",
usage: "Creates configuration, environments, and starter services",
},
{
command: "aethex login",
description: "Authenticate the CLI with your AeThex identity",
usage: "Support for browser-based login and personal access tokens",
},
{
command: "aethex deploy",
description: "Build and deploy the current project",
usage:
"Runs tests, packages artifacts, and promotes to the target environment",
},
{
command: "aethex env pull",
description: "Sync environment variables and secrets",
usage: "Keeps local .env files mirrored with the dashboard",
},
{
command: "aethex pipeline logs",
description: "Stream deployment logs in real time",
usage: "Supports filters by environment, branch, or commit SHA",
},
];
const automationTips = [
{
title: "GitHub Actions",
description:
"Use the official AeThex GitHub Action to authenticate, run smoke tests, and deploy on every pull request merge.",
},
{
title: "Audit Trails",
description:
"Every CLI deployment emits audit events. Stream them into your SIEM through the webhooks integration.",
},
{
title: "Rollbacks",
description:
"`aethex deploy --rollback latest` instantly reverts to the previous stable release and notifies collaborators.",
},
{
title: "Preview Environments",
description:
"`aethex preview create` spins up disposable stacks tied to feature branches for stakeholder reviews.",
},
];
export default function DocsCli() {
return (
<div className="space-y-12">
<section id="overview" className="space-y-4">
<Badge className="bg-amber-500/20 text-amber-100 uppercase tracking-wide">
<Terminal className="mr-2 h-3 w-3" />
CLI Tools
</Badge>
<h2 className="text-2xl font-semibold text-white">
Command-line tools for development and deployment
</h2>
<p className="text-gray-300 max-w-3xl">
Automate local development, environment management, and production deployments with cross-platform support.
</p>
</section>
<section id="commands" className="space-y-4">
<div className="flex items-center gap-3">
<Cpu className="h-6 w-6 text-amber-300" />
<h3 className="text-2xl font-semibold text-white">Command catalog</h3>
</div>
<Card className="bg-slate-900/60 border-slate-700">
<CardContent>
<Table>
<TableHeader>
<TableRow>
<TableHead>Command</TableHead>
<TableHead>Description</TableHead>
<TableHead>Usage notes</TableHead>
</TableRow>
</TableHeader>
<TableBody>
{commands.map((item) => (
<TableRow key={item.command}>
<TableCell className="font-mono text-purple-200">
{item.command}
</TableCell>
<TableCell className="text-gray-300">
{item.description}
</TableCell>
<TableCell className="text-gray-400 text-sm">
{item.usage}
</TableCell>
</TableRow>
))}
</TableBody>
<TableCaption>
Run <code className="bg-black/40 px-1">aethex --help</code> for
the full command tree.
</TableCaption>
</Table>
</CardContent>
</Card>
</section>
<section className="grid gap-6 lg:grid-cols-3">
<Card className="bg-slate-900/60 border-slate-700">
<CardHeader>
<CardTitle className="flex items-center gap-2 text-white">
<PlayCircle className="h-5 w-5 text-amber-300" />
Local development
</CardTitle>
</CardHeader>
<CardContent className="text-gray-300 space-y-3 text-sm">
<p>
Run <code className="bg-black/40 px-1">aethex dev</code> to start
local services with hot reloading and the AeThex mock identity
provider. Inspect logs via the integrated tail view.
</p>
<p>
Use <code className="bg-black/40 px-1">aethex data seed</code> to
populate sample datasets for QA or demo accounts.
</p>
</CardContent>
</Card>
<Card className="bg-slate-900/60 border-slate-700">
<CardHeader>
<CardTitle className="flex items-center gap-2 text-white">
<Settings className="h-5 w-5 text-amber-300" />
Environment management
</CardTitle>
</CardHeader>
<CardContent className="text-gray-300 space-y-3 text-sm">
<p>
Synchronize configuration with{" "}
<code className="bg-black/40 px-1">aethex env pull</code> or
populate remote environments from local files using{" "}
<code className="bg-black/40 px-1">aethex env push</code>.
</p>
<p>
Inspect secrets securely through{" "}
<code className="bg-black/40 px-1">aethex env inspect</code>.
Output is redacted by default, keeping sensitive data safe in
terminal logs.
</p>
</CardContent>
</Card>
<Card className="bg-slate-900/60 border-slate-700">
<CardHeader>
<CardTitle className="flex items-center gap-2 text-white">
<Activity className="h-5 w-5 text-amber-300" />
Deployment safety
</CardTitle>
</CardHeader>
<CardContent className="text-gray-300 space-y-3 text-sm">
<p>
Each deployment is transactional: a failure during build or
migration automatically halts promotion and emits alerts to
subscribed channels.
</p>
<p>
Gates such as quality checks or approvals can be configured in{" "}
<code className="bg-black/40 px-1">aethex.config.ts</code>
and enforced automatically by the CLI.
</p>
</CardContent>
</Card>
</section>
<section id="automation" className="space-y-4">
<div className="flex items-center gap-3">
<CloudLightning className="h-6 w-6 text-amber-300" />
<h3 className="text-2xl font-semibold text-white">
Automate everything
</h3>
</div>
<div className="grid gap-4 md:grid-cols-2">
{automationTips.map((tip) => (
<Card key={tip.title} className="bg-slate-900/60 border-slate-700">
<CardHeader>
<CardTitle className="text-white text-lg">
{tip.title}
</CardTitle>
</CardHeader>
<CardContent>
<CardDescription className="text-sm text-gray-300">
{tip.description}
</CardDescription>
</CardContent>
</Card>
))}
</div>
</section>
<section
id="security"
className="rounded-2xl border border-amber-500/40 bg-amber-900/20 p-8"
>
<div className="flex flex-col gap-6 md:flex-row md:items-center md:justify-between">
<div className="space-y-2">
<h3 className="text-2xl font-semibold text-white">
Stay safe in production
</h3>
<p className="text-gray-200 max-w-2xl text-sm">
The CLI signs every build artifact and enforces checksums during
deployment. Combine this with RBAC token policies to guarantee
only trusted pipelines can trigger releases.
</p>
</div>
<div className="flex flex-col gap-3 sm:flex-row">
<Button
asChild
size="lg"
className="bg-amber-500 hover:bg-amber-400 text-black"
>
<Link to="/docs/getting-started">
<ArrowRight className="mr-2 h-5 w-5" />
Return to setup guide
</Link>
</Button>
<Button
asChild
variant="outline"
size="lg"
className="border-amber-300/60 text-amber-100"
>
<Link to="/support">
<Shield className="mr-2 h-5 w-5" />
Security best practices
</Link>
</Button>
<Button
asChild
variant="ghost"
size="lg"
className="text-amber-100 hover:text-amber-50"
>
<Link to="/docs/platform">
Discover platform features
<ArrowRight className="ml-2 h-5 w-5" />
</Link>
</Button>
</div>
</div>
</section>
</div>
);
}