Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.5.x docs #440

Closed
wants to merge 96 commits into from
Closed
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
0da264d
feat: ssr
loks0n Dec 20, 2023
d1ee6d7
chore: rfac
loks0n Dec 20, 2023
3ced54e
chore: typo
loks0n Dec 20, 2023
8ee8eed
Add messaging shell
Dec 21, 2023
18da9a3
Rework messaging journies
Dec 21, 2023
d49d316
feat: ssr oauth explainer
loks0n Dec 21, 2023
ab2ca0f
Update src/routes/docs/products/auth/ssr/+page.markdoc
loks0n Dec 22, 2023
24146e2
Some improvements on SSR docs
Jan 10, 2024
0293415
Some suggestions
Jan 10, 2024
4462ca5
Merge branch '1.5.x' of https://github.com/appwrite/website into feat…
loks0n Jan 13, 2024
0209dc8
Merge branch 'feat-ssr' of https://github.com/appwrite/website into f…
loks0n Jan 13, 2024
3688fd6
Add all new pages for messaging
Jan 19, 2024
4e5aa4a
Merge branch 'main' into 1.5.x
Jan 23, 2024
015d17e
Add sub nav for providers
Jan 28, 2024
50ed9e8
Add all providers
Jan 29, 2024
9fc9a02
Added required code examples shells
Jan 30, 2024
112d1f2
Updte auth docs
Meldiron Jan 30, 2024
7e674d6
Leftover, hihi
Meldiron Jan 30, 2024
bd5b783
Add topics, targets messages
Jan 31, 2024
3a27c87
Update src/routes/docs/products/auth/ssr/+page.markdoc
loks0n Jan 31, 2024
b548457
Remove external auth page
Meldiron Jan 31, 2024
8d23a21
Add db operators
Jan 31, 2024
69ec1ff
Add tabs for queries because we have many languages
Jan 31, 2024
39e95fa
Add MFA docs
Feb 1, 2024
3303670
Finish auth G2 docs
Meldiron Feb 1, 2024
d8fe4ea
add image for message status
Feb 4, 2024
972e83e
Merge pull request #563 from appwrite/providers
Feb 4, 2024
e3c9850
Add FCM and APNs screenshots
Feb 4, 2024
fb2524e
Apply suggestions from code review
Meldiron Feb 4, 2024
efaea26
review changes
Meldiron Feb 4, 2024
905180b
Merge branch 'feat-new-auth-docs' of https://github.com/appwrite/webs…
Meldiron Feb 4, 2024
7fd9fc9
Remove double dots
Meldiron Feb 4, 2024
7a9e156
Copy changes to duplicate section
Meldiron Feb 4, 2024
bdad0cb
Apply suggestions from code review
Feb 4, 2024
c618c9f
Merge branch '1.5.x' into feat-new-auth-docs
Feb 4, 2024
bdd6377
Fix tables magic url vs OTP
Feb 4, 2024
f0a03f3
Merge pull request #566 from appwrite/feat-new-auth-docs
Feb 4, 2024
8385396
Merge branch '1.5.x' into topics-targets-messages
Feb 5, 2024
af1830c
Add screenshots and examples for concept pages
Feb 5, 2024
7b405cc
Add multicdoe to custom tokens
Meldiron Feb 5, 2024
90f1d2b
Revert "Add multicdoe to custom tokens"
Meldiron Feb 5, 2024
86970bf
Add multicdoe to custom tokens
Meldiron Feb 5, 2024
a0a17c3
PR review changes
Meldiron Feb 5, 2024
98f72a5
Leftover
Meldiron Feb 5, 2024
3c1ac65
Merge pull request #578 from appwrite/fix-custom-token-multicode
Feb 5, 2024
676fdde
Add details for FCM push notification targets
Feb 6, 2024
f0d2879
Merge branch '1.5.x' of https://github.com/appwrite/website into feat…
loks0n Feb 6, 2024
9531dac
chore: ssr journeys update
loks0n Feb 6, 2024
0e034e9
feat: svelte ssr auth
loks0n Feb 6, 2024
a53d726
chore: OAuth 2 -> OAuth2
loks0n Feb 6, 2024
838204c
feat: tokens concept page
loks0n Feb 6, 2024
6f9d2ce
add APNS-ios target instruction
Feb 6, 2024
a21fbb9
Add screenshots and complete examples for apns and fcm
Feb 6, 2024
db0cbfb
Add code sample and screenshots under messages page
Feb 6, 2024
bd1881b
Merge pull request #567 from appwrite/topics-targets-messages
Feb 6, 2024
88ca4a5
Fix placeholder tag format
Feb 5, 2024
13732b0
Add SMS journey
Feb 7, 2024
ac255af
Merge branch 'topics-targets-messages' of https://github.com/appwrite…
Feb 7, 2024
1917731
chore: vincent review
loks0n Feb 8, 2024
4bfcdc1
chore: vincent review
loks0n Feb 8, 2024
b7cfde7
Merge pull request #439 from appwrite/feat-ssr
Feb 8, 2024
a121361
Added screenshots and manage examples for MSG providers
Feb 9, 2024
97f10e3
Update Text Magic to be TextMagic
Feb 9, 2024
efd44de
chore: svelte csr changes
loks0n Feb 9, 2024
f6c4e36
feat: nextjs ssr auth tutorial
loks0n Feb 9, 2024
71f8788
Update src/routes/docs/tutorials/nextjs-ssr-auth/step-3/+page.markdoc
loks0n Feb 9, 2024
07b6695
chore: fix redirects
loks0n Feb 9, 2024
fd11828
Merge branch 'feat-ssr-demos' of https://github.com/appwrite/website …
loks0n Feb 9, 2024
3b3c12a
fix: nextjs links
loks0n Feb 9, 2024
d9d4440
Add screenshots, add instructions for sender email and reply to email…
Feb 9, 2024
2e3cff5
feat: nuxt ssr auth tutorial
loks0n Feb 9, 2024
cd38136
Completed sendgrid provider page with all details
Feb 9, 2024
3e81e7e
chore: autotype load
loks0n Feb 10, 2024
eb8c749
feat: astro
loks0n Feb 12, 2024
e76ae10
fix: createOAuth2Token
loks0n Feb 12, 2024
cc3b4fb
fix: remove non existant `sessions.read`
loks0n Feb 12, 2024
ed94383
Fix icons
Feb 12, 2024
b94d469
Update src/routes/docs/products/messaging/targets/+page.markdoc
Feb 12, 2024
e6539d8
Remove duplicated line
Feb 12, 2024
0e66c8b
Reviewed Next.js SSR tutorial
Feb 12, 2024
e332bcc
Reviewed all SSR tutorials
Feb 12, 2024
4b09559
Merge pull request #593 from appwrite/feat-ssr-demos
Feb 12, 2024
98c6745
update email examples
Feb 12, 2024
0115e4d
Merge branch '1.5.x' into topics-targets-messages
Feb 12, 2024
2b722c0
Merge pull request #589 from appwrite/topics-targets-messages
Feb 12, 2024
e181f03
fixed API key details for SSR, added screenshots for create message i…
Feb 13, 2024
825ab08
Fix broken links
Feb 13, 2024
56c0791
Fix more links
Feb 13, 2024
cac9d1e
Add createPush examples
Feb 13, 2024
fb4f79c
Added code examples using a special generator script ;)
Feb 13, 2024
f6f5b4b
Fix TODO in links so preview can build
Feb 13, 2024
dfd0d06
Fix TODO in links so preview can build
Feb 13, 2024
a3babb0
Point to 1.5.x rc branch
Feb 14, 2024
9210f98
Merge branch 'main' into 1.5.x
Feb 14, 2024
5e29995
Temporarily try catch md parsing so previews will build
Feb 14, 2024
6d09bfc
Update links for account.md description
Feb 14, 2024
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
4 changes: 3 additions & 1 deletion src/partials/auth-security.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@ Password dictionary can be enabled in the Auth service's **Security** tab on the

# Password hashing {% #password-hashing %}
Appwrite protects passwords by using the [Argon2](https://github.com/P-H-C/phc-winner-argon2) password-hashing algorithm.
Argon 2 is a resilient and secure password hashing algorithm, which is also the winner of the [Password Hashing Competition](https://www.password-hashing.net/)
Argon 2 is a resilient and secure password hashing algorithm, which is also the winner of the [Password Hashing Competition](https://www.password-hashing.net/).
Appwrite combines Argon 2 with the use of techniques such as salting, adjustable work factors, and memory hardness to securely handle passwords.

If an user is imported into Appwrite with hash differnt than Argon2, the password will be re-hashed on first successful user's sign in. This ensures all passwords are stored as securely as possible.

# Personal data {% #personal-data %}

Encourage passwords that are hard to guess by disallowing users to pick passwords that contain personal data.
Expand Down
8 changes: 7 additions & 1 deletion src/routes/docs/Sidebar.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,18 @@
icon: 'icon-lightning-bolt',
isParent: true
},
{
label: 'Messaging',
href: '/docs/products/messaging',
icon: 'icon-send',
isParent: true
},
{
label: 'Storage',
href: '/docs/products/storage',
icon: 'icon-folder',
isParent: true
}
},
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion src/routes/docs/advanced/platform/+page.markdoc
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,6 @@ Configure custom domains and customize communication templates.
Add a custom domain for your Appwrite APIs.
{% /cards_item %}
{% cards_item href="/docs/advanced/platform/message-templates" title="Message templates" %}
Create custom branding and messages when you communicate with users..
Create custom branding and messages when you communicate with users.
{% /cards_item %}
{% /cards %}
4 changes: 2 additions & 2 deletions src/routes/docs/apis/graphql/+page.markdoc
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@ If no errors occur, the array will not be present in the response.
# Authentication {% #authentication %}

GraphQL authenticates using Appwrite accounts and sessions.
Both accounts and sessions can be created with GraphQL using the `accountCreate`, `accountCreateEmailSession`,
`accountCreateAnonymousSession`, or `accountCreatePhoneSession` mutations.
Both accounts and sessions can be created with GraphQL using the `accountCreate`, `accountCreateEmailPasswordSession`,
`accountCreateAnonymousSession`, or `accountCreatePhoneToken` mutations.

More information and examples of authenticating users can be found in the dedicated [authentication guide](/docs/products/auth).

Expand Down
208 changes: 114 additions & 94 deletions src/routes/docs/products/auth/+layout.svelte
Original file line number Diff line number Diff line change
@@ -1,101 +1,121 @@
<script lang="ts">
import Docs from '$lib/layouts/Docs.svelte';
import Sidebar, { type NavParent, type NavTree } from '$lib/layouts/Sidebar.svelte';
import Docs from '$lib/layouts/Docs.svelte';
import Sidebar, { type NavParent, type NavTree } from '$lib/layouts/Sidebar.svelte';

const parent: NavParent = {
href: '/docs',
label: 'Auth'
};
const parent: NavParent = {
href: '/docs',
label: 'Auth'
};

const navigation: NavTree = [
{
label: 'Getting started',
items: [
{
label: 'Overview',
href: '/docs/products/auth'
},
{
label: 'Quick start',
href: '/docs/products/auth/quick-start'
}
]
},
{
label: 'Concepts',
items: [
{
label: 'Accounts',
href: '/docs/products/auth/accounts'
},
{
label: 'Users',
href: '/docs/products/auth/users'
},
{
label: 'Teams',
href: '/docs/products/auth/teams'
},
{
label: 'Labels',
href: '/docs/products/auth/labels'
},
{
label: 'Security',
href: '/docs/products/auth/security'
}
]
},
{
label: 'Journeys',
items: [
{
label: 'Email and password login',
href: '/docs/products/auth/email-password'
},
{
label: 'Phone (SMS) login',
href: '/docs/products/auth/phone-sms'
},
{
label: 'Magic URL login',
href: '/docs/products/auth/magic-url'
},
{
label: 'OAuth 2 login',
href: '/docs/products/auth/oauth2'
},
{
label: 'Anonymous login',
href: '/docs/products/auth/anonymous'
},
{
label: 'JWT login',
href: '/docs/products/auth/jwt'
},
]
},
{
label: 'References',
items: [
{
label: 'Account API',
href: '/docs/references/cloud/client-web/account'
},
{
label: 'Users API',
href: '/docs/references/cloud/server-nodejs/users'
},
{
label: 'Teams API',
href: '/docs/references/cloud/client-web/teams'
}
]
},
];
const navigation: NavTree = [
{
label: 'Getting started',
items: [
{
label: 'Overview',
href: '/docs/products/auth'
},
{
label: 'Quick start',
href: '/docs/products/auth/quick-start'
}
]
},
{
label: 'Concepts',
items: [
{
label: 'Accounts',
href: '/docs/products/auth/accounts'
},
{
label: 'Users',
href: '/docs/products/auth/users'
},
{
label: 'Teams',
href: '/docs/products/auth/teams'
},
{
label: 'Labels',
href: '/docs/products/auth/labels'
},
{
label: 'Security',
href: '/docs/products/auth/security'
},
{
label: 'Tokens',
href: '/docs/products/auth/tokens'
}
]
},
{
label: 'Journeys',
items: [
{
label: 'Email and password login',
href: '/docs/products/auth/email-password'
},
{
label: 'Phone (SMS) login',
href: '/docs/products/auth/phone-sms'
},
{
label: 'Magic URL login',
href: '/docs/products/auth/magic-url'
},
{
label: 'Email OTP login',
href: '/docs/products/auth/email-otp'
},
{
label: 'OAuth2 login',
href: '/docs/products/auth/oauth2'
},
{
label: 'Anonymous login',
href: '/docs/products/auth/anonymous'
},
{
label: 'JWT login',
href: '/docs/products/auth/jwt'
},
{
label: 'SSR login',
href: '/docs/products/auth/server-side-rendering'
},
{
label: 'Custom token login',
href: '/docs/products/auth/custom-token'
},
{
label: 'Multi-factor authentication',
href: '/docs/products/auth/mfa'
}
]
},
{
label: 'References',
items: [
{
label: 'Account API',
href: '/docs/references/cloud/client-web/account'
},
{
label: 'Users API',
href: '/docs/references/cloud/server-nodejs/users'
},
{
label: 'Teams API',
href: '/docs/references/cloud/client-web/teams'
}
]
}
];
</script>

<Docs variant="two-side-navs">
<Sidebar {navigation} {parent} />
<slot />
<Sidebar {navigation} {parent} />
<slot />
</Docs>
20 changes: 11 additions & 9 deletions src/routes/docs/products/auth/accounts/+page.markdoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,19 @@ Each user's account can also have their own preference object, which you can use

# Signup and login {% #signup-login %}

You can signup and login a user with an account create through
[email password](/docs/products/auth/email-password),
[phone (SMS)](/docs/products/auth/phone-sms),
[Anonymous](/docs/products/auth/anonymous),
[magic URL](/docs/products/auth/magic-url), and
[OAuth 2](/docs/products/auth/oauth2)
authentication.
You can signup and login a user with an account created through
[Email and password](/docs/products/auth/email-password),
[OAuth2](/docs/products/auth/oauth2),
[Magic URL](/docs/products/auth/magic-url),
[Email OTP](/docs/products/auth/email-otp),
[Phone (SMS)](/docs/products/auth/phone-sms),
and [Anonymous](/docs/products/auth/anonymous) authentications.

You can also use [Custom token](/docs/products/auth/custom-token) to implement your own authentication flow, or integrate with any external provider.

# Preferences {% #preferences %}

You can store user preferences on a user's account using Appwrite's [Update Preferences](/docs/references/cloud/client-web/account#updatePrefs) endpoint. You can store preferences such as theme, notification settings, or preferred language so they can be synced across multiple devices.
You can store user preferences on a user's account using Appwrite's [Update preferences](/docs/references/cloud/client-web/account#updatePrefs) endpoint. You can store preferences such as theme, notification settings, or preferred language so they can be synced across multiple devices.

Preferences are stored as a key-value JSON object. The maximum allowed size for preferences is 64kB, and an error will be thrown if this limit is exceeded.

Expand Down Expand Up @@ -108,7 +110,7 @@ mutation {
```
{% /multicode %}

After a user's preferences are updated, they can be retrieved using the [get account preferences](/docs/references/cloud/client-web/account#getPrefs) endpoint.
After a user's preferences are updated, they can be retrieved using the [Get preferences](/docs/references/cloud/client-web/account#getPrefs) endpoint.

{% multicode %}
```js
Expand Down
4 changes: 2 additions & 2 deletions src/routes/docs/products/auth/anonymous/+page.markdoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Anonymous sessions allow you to implement **guest** users. Guest users let you s

# Create anonymous session {% #createSession %}

Create an anonymous session with [Create Anonymous Session](/docs/references/cloud/client-web/account#createAnonymousSession) route.
Create an anonymous session with [Create Anonymous Session](/docs/references/cloud/client-web/account#createAnonymousSession) endpoint.

{% multicode %}
```js
Expand Down Expand Up @@ -78,7 +78,7 @@ mutation {

# Attaching an account {% #attach-account %}

Anonymous users cannot sign back in. If the session expires, they move to another computer, or they clear their browser data, they won't be able to log in again. Remember to prompt the user to create an account to not lose their data.
Anonymous users cannot sign back in. If the session expires, they move to another computer, or they clear their browser data, they won't be able to log in again. Remember to prompt the user to claim an account to not lose their data.

Create an account with any of these methods to transition from an anonymous session to a user account session.

Expand Down
Loading
Loading