Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions nextjs-auth-pages/.gitignore
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*.local

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
40 changes: 40 additions & 0 deletions nextjs-auth-pages/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
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:3000](http://localhost:3000) with your browser to see the result.

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

[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.

The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.

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.
31 changes: 31 additions & 0 deletions nextjs-auth-pages/dbschema/default.esdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using extension auth;

module default {
type User {
required identity: ext::auth::Identity {
constraint exclusive;
};
name: str;
};

global currentUser := (
select User filter .identity = global ext::auth::ClientTokenIdentity
);

type Todo {
required owner: User {
default := global currentUser;
};
required content: str;
required created_on: datetime {
default := datetime_current();
};
required completed: bool {
default := false;
};

access policy ownerHasAccess
allow all
using (global currentUser ?= .owner);
};
}
31 changes: 31 additions & 0 deletions nextjs-auth-pages/dbschema/migrations/00001.edgeql
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
CREATE MIGRATION m1noekpcc34xfbcdmzrcr3va73kmxrrw5iarw6yryy3dok6ifkzqaa
ONTO initial
{
CREATE EXTENSION pgcrypto VERSION '1.3';
CREATE EXTENSION auth VERSION '1.0';
CREATE TYPE default::User {
CREATE REQUIRED LINK identity: ext::auth::Identity {
CREATE CONSTRAINT std::exclusive;
};
CREATE PROPERTY name: std::str;
};
CREATE GLOBAL default::currentUser := (SELECT
default::User
FILTER
(.identity = GLOBAL ext::auth::ClientTokenIdentity)
);
CREATE TYPE default::Todo {
CREATE REQUIRED LINK owner: default::User {
SET default := (GLOBAL default::currentUser);
};
CREATE ACCESS POLICY ownerHasAccess
ALLOW ALL USING ((GLOBAL default::currentUser ?= .owner));
CREATE REQUIRED PROPERTY completed: std::bool {
SET default := false;
};
CREATE REQUIRED PROPERTY content: std::str;
CREATE REQUIRED PROPERTY created_on: std::datetime {
SET default := (std::datetime_current());
};
};
};
2 changes: 2 additions & 0 deletions nextjs-auth-pages/edgedb.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[edgedb]
server-version = "4.2"
6 changes: 6 additions & 0 deletions nextjs-auth-pages/next.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
}

module.exports = nextConfig
Loading