Skip to content

Commit

Permalink
feat: Open source Inferable app and control plane
Browse files Browse the repository at this point in the history
  • Loading branch information
johnjcsmith committed Nov 28, 2024
1 parent 35ecf71 commit b2f996e
Show file tree
Hide file tree
Showing 654 changed files with 280,029 additions and 0 deletions.
36 changes: 36 additions & 0 deletions app/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
14 changes: 14 additions & 0 deletions app/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"extends": [
"next/core-web-vitals",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"plugins": [
"@typescript-eslint"
],
"rules": {
"@typescript-eslint/no-unused-vars": 1,
"@typescript-eslint/no-explicit-any": 1
}
}
16 changes: 16 additions & 0 deletions app/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM node:20

WORKDIR /app

# copy package.json and package-lock.json
COPY --link package.json package-lock.json ./

# install dependencies
RUN npm install

# copy source code
COPY --link . .

RUN npm install

ENTRYPOINT [ "npm", "run", "dev" ]
36 changes: 36 additions & 0 deletions app/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

## Getting Started

First, run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

Open [http://localhost:3001](http://localhost:3001) with your browser to see the result.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
67 changes: 67 additions & 0 deletions app/app/cli-auth/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
"use client";

import { useAuth, OrganizationSwitcher } from "@clerk/nextjs";
import { Button } from "@/components/ui/button";
import {
Card,
CardHeader,
CardTitle,
CardDescription,
CardContent,
CardFooter,
} from "@/components/ui/card";
import toast from "react-hot-toast";
import { Loader } from "lucide-react";

export default function Page() {
return (
<div className="flex items-center justify-center min-h-screen p-4">
<CliAuth />
</div>
);
}

function CliAuth() {
const { getToken, orgId, isLoaded } = useAuth();

const handleGetToken = async () => {
const newToken = await getToken({
template: "extended-cli-token",
});

if (!newToken) {
toast.error("Failed to get token");
return;
}

const url = new URL("http://localhost:9999");
url.searchParams.append("token", newToken);
window.location.href = url.toString();
};

if (!isLoaded) {
return <Loader className="w-10 h-10" />;
}

return (
<Card className="w-[800px]">
<CardHeader>
<CardTitle>CLI Authentication</CardTitle>
<CardDescription>
Select an organization and confirm CLI authentication
</CardDescription>
</CardHeader>
<CardContent>
<OrganizationSwitcher
hidePersonal={true}
afterSelectOrganizationUrl="/cli-auth?force=true"
/>
</CardContent>
<CardFooter className="flex flex-col space-y-2">
<Button onClick={handleGetToken} className="w-full" disabled={!orgId}>
Authenticate CLI
</Button>
</CardFooter>
</Card>
);
}
Loading

0 comments on commit b2f996e

Please sign in to comment.