Sajay Antony
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
# OCI Authentication and Authorization Working Group - [OCI Calendar](https://calendar.google.com/calendar/b/2/r?cid=bGludXhmb3VuZGF0aW9uLm9yZ19pMHNhZG8waTM3ZWtuYXI1MXZzdThtZDVoZ0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t) - [Conference URL](https://zoom.us/j/6449415895?pwd=S2tJVGVra0dYdlZCRjJwdXdPdGRQQT09) with embedded passcode - One tap mobile [+16465588656,,6449415895#](+16465588656,,6449415895#) US (New York) [+16699006833,,6449415895#](+16699006833,,6449415895#) US (San Jose) Passcode: 77777 *(5 7's)* Dial by your location +1 646 558 8656 US (New York) +1 669 900 6833 US (San Jose) 877 369 0926 US Toll-free 855 880 1246 US Toll-free Meeting ID: 644 941 5895 Find your local number: https://zoom.us/u/aLDk4OXTu - [WG Approval and overview](https://github.com/opencontainers/tob/blob/main/proposals/wg-auth.md) *template at the bottom* ## May 7, 2024 - TBD Canceled future meetings pending progress on submitting proposals. ## April 30, 2024 **Recording**: https://youtu.be/aDVFgvpJIb8 ### Attendees - Brandon Mitchell - Nathan Anderson ### Notes - No updates, ended the meeting early ## April 23, 2024 Canceled ## April 16, 2024 Canceled for OSSummit ## April 9, 2024 Canceled ## April 2, 2024 **Recording**: https://youtu.be/MBDk1D6j_vM ### Attendees - Brandon Mitchell - Nathan Anderson - Jeff Carter - _add yourself_ ### Notes - No updates, ended the meeting early ## March 26, 2024 **Recording**: https://youtu.be/eNscSLlzobE ### Attendees - Brandon Mitchell - Nathan Anderson - Jeff Carter - Sajay Antony - _add yourself_ ### Notes - Quick checkin, next steps would be creating proposals in the wg-auth repo once people have free time. ## March 19, 2024 Canceled - KubeCon EU ## March 12, 2024 Canceled - no agenda ## March 5, 2024 **Recording**: https://youtu.be/3DEm5Nd07Tg ### Attendees - Nathan Anderson - Brandon Mitchell - Victor Lu - Jeff Carter - Ramkumar Chinchani - _add yourself_ ### Notes - No agenda, meeting ended early. ## February 27, 2024 **Recording**: https://youtu.be/5B4F9CLJfBo ### Attendees - Brandon Mitchell - Ramkumar Chinchani - Sajay Antony - Jeff Carter - Nathan Anderson - _add yourself_ ### Notes - No agenda, meeting ended early. ## February 20, 2024 **Recording**: https://youtu.be/J3Ms2qM8uMM ### Attendees - Brandon Mitchell - Nathan Anderson - Sajay Antony - _add yourself_ ### Notes - No agenda, meeting ended early. - Current focus of the maintainers is working through image and distribution spec backlogs after the 1.1.0 releases. ## February 13, 2024 **Recording**: https://youtu.be/4UmmL3Fyp74 ### Attendees - Brandon Mitchell - Nathan Anderson - Sajay Antony - Ramkumar Chinchani - Toddy - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - https://toddysm.com/2024/02/12/authenticating-with-oci-registries-github-container-registry-ghcr-implementation/ [@toddysm ??] - _add your items_ ### Notes - _add your notes_ ## February 6, 2024 **Recording**: https://youtu.be/V33E4iidKPE ### Attendees - Toddy - Brandon Mitchell - Nathan Anderson - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - Toddy continues work on reviewing existing registry implementations. - _add your notes_ ## January 30, 2024 **Recording**: https://youtu.be/FgZNM0ybrxY ### Attendees - Brandon Mitchell - Syed Ahmed - Nathan Anderson - Jeff Carter - Toddy - Sajay Antony - Ramkumar Chinchani - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - Toddy: <https://toddysm.com/2024/01/30/authenticating-with-oci-registries-docker-hub-implementation/> - _add your items_ ### Notes - _add your notes_ ## January 23, 2024 **Recording**: https://youtu.be/DbwZoaPf7Y0 ### Attendees - Brandon Mitchell - Toddy - Nathan Anderson - Syed Ahmed - Jeff Carter - Ramkumar Chinchani - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - Toddy asked about reusing a token - Described in <https://github.com/opencontainers/wg-auth/pull/11> - Ended early due to lack of agenda - _add your notes_ ## January 16, 2024 **Recording**: https://youtu.be/u7-KVNFXtX0 ### Attendees - Brandon Mitchell - Nathan Anderson - Jeff Carter - Ramkumar Chinchani - Sajay Antony - Syed Ahmed - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - Auth scopes for cross repo actions like search - Quay and Docker Hub allows global actions but only to public repos - Adding search to private repos may not be supported by most registries - Some registries are looking at wildcard or prefix options for access to an organization - Browser use case - CORS issues - Desire to implement something like <https://explore.ggcr.dev/> within the browser rather than on a server - Registries that want to allow any client would need to allow a `*` origin - _add your notes_ ## January 9, 2024 **Recording**: https://youtu.be/nGn2T4OMjug ### Attendees - Brandon Mitchell - Jeff Carter - Ramkumar Chinchani - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - Not much this week - Brandon will work on submitting a PR for added use cases. - _add your notes_ ## December 19, 2023 **Recording**: https://youtu.be/iH2h067qf9M ### Attendees - Brandon Mitchell - Jeff Carter - Victor Lu ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - Canceled next two meetings, resuming on January 9th. - Brandon will work on pushing a PR to the use cases doc. - _add your notes_ ## December 12, 2023 **Recording**: https://youtu.be/0E_xnI_-17c ### Attendees - Brandon Mitchell - Nathan Anderson - Syed ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - _add your notes_ ## December 5, 2023 **Recording**: https://youtu.be/A_Hf18A0dxw ### Attendees - Ramkumar Chinchani - Nathan Anderson - Victor Lu - Jeff Carter - Brandon Mitchell - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - Reviews for PRs are needed. - _add your notes_ ## November 28, 2023 ### Attendees - Brandon Mitchell - Lindsey Albery - Nathan Anderson ### Notes - Canceled, no agenda ## November 21, 2023 **Recording**: https://youtu.be/IdjU7h73ZpE ### Attendees - Wayne - Brandon Mitchell - Victor Lu - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - containerd implementation: <https://github.com/opencontainers/wg-auth/pull/9> ### Notes - Device authentication / zero trust discussion: - <https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Arch-Implicit-Identity-Based-Device-Attestation-v1-rev93.pdf> - <https://www.hashicorp.com/resources/introduction-to-zero-trust-security> ## November 14, 2023 **Recording**: https://youtu.be/iJ36wUIXyQs ### Attendees - Lindsey Albery - Bjorn Neergaard - Nathan Anderson - Brandon Mitchell - Toddy - Jeff Carter - Mike Brown (IBM) - Ramkumar Chinchani - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - Discussing scenarios: - From the WG proposal: - Define registry responses to unauthenticated requests. - Define supported authentication methods (e.g. basic and bearer authentication). - Specify how clients negotiate access a repository and different types of access to that repository (e.g. pull and push). - Specify how clients negotiate access to multiple repositories for actions like a cross-repository blob mount. - Specify how clients and registries should renegotiate access for a request with expired or insufficient authorization. - Specify expected lifetime of registry credentials. - Avoid specifications that would prevent future extensibility (e.g. fine grain access control). - The authentication methods defined as supported should include OSS solution(s) that avoid picking/choosing a limited set of specific authentication providers as the default / winner. - Specify how clients and registries should be extensible/pluggable with respect to supported authentication methods. - Pull (head) followed by a push - First token is for a pull scope - On push: registry needs to send a 401 for a new scope rather than 403 of refused / insufficient scope - Should clients or servers track a forbidden scenario? - Servers may not track missing scopes today, but could be added - Clients know the scopes they've requested, but gets away from oauth 2.0 spec design - Cross repository blob mount - Do clients request both push to target and pull from source, or only push? - More research needed - URL redirect - Should auth header exist in redirect? No - URL will typically include any auth (if needed) from the remote server - Delete access - Should client generated action be pull or delete? - This assumes we define client generated scopes. - Oauth spec: <https://datatracker.ietf.org/doc/html/rfc6750> - _add your notes_ ## November 7, 2023 **Recording**: https://youtu.be/vTS29GuEbms ### Attendees - Ethan Hill - Wayne - Bjorn Neergaard - Nathan Anderson - Brandon Mitchell - Ramkumar Chinchani - Jeff Carter - Wayne - Victor Lu - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - regclient implementation: <https://github.com/opencontainers/wg-auth/pull/8> - Future plans: - containerd will hopefully have a write-up in the next week or so - gather a list of difficult auth questions we should resolve (pull then push, multi-repository access, etc) - ### Notes - _add your notes_ ## October 31, 2023 **Recording**: https://youtu.be/BfKUHT5z1jM ### Attendees - Sajay Antony - Nathan Anderson - Ramkumar Chinchani - Brandon Mitchell - Jeff Carter - Wayne - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - ORAS implementation: <https://github.com/opencontainers/wg-auth/pull/7> - _add your items_ ### Notes - _add your notes_ ## October 24, 2023 **Recording**: https://youtu.be/Mev5v_8dia4 ### Attendees - Nathan Anderson - Victor Lu - Brandon Mitchell - Sajay Antony - Ramkumar Chinchani - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - No implementation docs ready this week - Potential issues: - 307(redirect) should not include credentials in header, but may need them in the redirect URL - how do servers know when a client has requested and failed to get access to a specific repo (vs reuse the token from a different repo and need to reauth) - _add your notes_ ## October 17, 2023 **Recording**: https://youtu.be/3v1IVQPffRk ### Attendees - Toddy - Wayne Warren - Sajay Antony - Ramkumar Chinchani - Brandon Mitchell - Jeff Carter - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - No implementation docs ready this week, ended early ## October 10, 2023 **Recording**: https://youtu.be/Pnzh8UDErBM ### Attendees - Brandon Mitchell - Sajay Antony - Nathan Anderson - Victor Lu - Wayne - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - Quick check-in, no updates on workflows this week - AIP: <https://google.aip.dev/general> - AEP: <https://aep.dev/general> - Action: still in progress: - Containerd (Nathan) - ORAS (Sajay will request from the team) - regclient (Brandon) - _add your notes_ ## October 3, 2023 **Recording**: https://youtu.be/5Xis39EWfvE ### Attendees - Nathan Anderson - Ramkumar Chinchani - ToddySM - Sajay Antony ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - _add your notes_ ## September 26, 2023 **Recording**: https://youtu.be/IAVvalKd9xU ### Attendees - Toddy - Nathan Anderson - Jeff Carter - Brandon Mitchell - Sajay Antony - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - Moby/Docker workflow: <https://github.com/opencontainers/wg-auth/pull/6> - _add your items_ ### Notes - Reviewed moby workflow, expect containerd to look very different - Question on how clients handle requests to multiple repositories when they have auth token for only one (should they request a new token) - Action: make workflows for: - Containerd (Nathan) - ORAS (Sajay will request from the team, expect 3-4 weeks) - regclient (Brandon, will not be here next week) - _add your notes_ ## September 19, 2023 **Recording**: https://youtu.be/u9hWTd30nsM ### Attendees - Brandon Mitchell - Sajay Antony - Nathan Anderson - Márk Sági-Kazár - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - Short review of Moby calling the /v2/ ping - Brandon will work on documenting some client's existing workflows as PRs - _add your items_ ### Notes - _add your notes_ ## September 12, 2023 **Recording**: https://youtu.be/QqUGPirVioM ### Attendees - ToddySM - Nathan Anderson - Sajay Antony ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - Discussion on creating some documentations of various registries (toddysm) - Introspection of the WWW-Authenticate challenge header (Nathan) - _add your items_ ### Notes - _add your notes_ ## September 5, 2023 **Recording**: https://youtu.be/2dz977xVuyE ### Attendees - Bradon Mitchell - Ramkumar Chinchani - Nathan Anderson - Jeff Carter - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - Could we add docker authentication specifications as a proposal? [sajay] - Does seem like a place to start with, maybe a single doc. - _add your items_ ### Notes - Deferred to next week: look at containerd / distribution / moby code with the v2 ping and the workflow to generate scopes. - _add your notes_ ## August 29, 2023 **Recording**: https://youtu.be/3JN0RXRcqII ### Attendees - Brandon Mitchell - Sajay Antony - Jeff Carter - Ramkumar Chinchani - Nathan Anderson - _add yourself_ ### Actionable Agenda Items - Meeting minutes, PR 2: <https://github.com/opencontainers/wg-auth/pull/2> - Specs and use cases, PR 3: <https://github.com/opencontainers/wg-auth/pull/3> - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - Reviewing RFC7235: <https://datatracker.ietf.org/doc/html/rfc7235> - Reviewing Docker docs: <https://docs.docker.com/registry/spec/auth/> - Next week: look at distribution code with the v2 ping and the workflow to generate scopes. - _add your notes_ ## August 22, 2023 No agenda, canceled ## August 15, 2023 **Recording**: https://youtu.be/xDSYtigDmC0 ### Attendees - Brandon Mitchell - Jeff Carter - Ramkumar Chinchani - TodySM - Victor Lu - Nathan Anderson - Sajay Antony - Aviral Takkar - _add yourself_ ### Actionable Agenda Items - None ### Presentation/Discussion Agenda Items - None ### Notes - Brainstorming - would cloud providers and others adopt proposals from here. - Potentially add a conformance test - Make additions to the conformance test. - Will we need a security review? - OCI may not have the resources, but registry servers should - Existing specs listed in PR 3: <https://github.com/opencontainers/wg-auth/pull/3/files> - Next steps? - Create a diagram of existing workflow with the docker spec - Survey of existing tools and their processes - _add your notes_ ## August 8, 2023 **Recording**: https://youtu.be/lzMrS7nYfZg ### Attendees - Aviral - Brandon Mitchell - Jeff Carter - Mike Brown (IBM) - Nathan Anderson - Ramkumar Chinchani - ToddySM ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - Repo has been created: <https://github.com/opencontainers/wg-auth> - _add your items_ ### Notes - How to handle disagreements in the WG - Hopefully we won't have many - Everything we create goes through various approvals upstream. - Separate the use cases by current capabilities vs future features - Use Cases: - Permissions to access `_catalog` - How to filter out repos from list you do not have access to - How to query limited private scope - UI authentication vs client tooling/CLI workflow - Different types of credentials (passwords, tokens) - Authentication to extensions in the registry (not only push/pull) - Authentication for anything that is not specific to a repository - Pull/push an image - Cross repository blob mount - Long running clients (registry mirroring, caches) - Timeout of stale credentials - Accessing multiple repositories - Multi-tenant clients - Encryption/decryption images/artifacts - CDN integration - Various auth methods (token, basic) - Artifact scanning and signing - Certificate authority - Mutual TLS - Auth to the tag level, e.g. embargoed fixes - HTTP redirection (when should client allow?) - Anonymous access - Will we create a library in OCI? - Existing Specs - Docker: <https://docs.docker.com/registry/spec/auth/> - HTTP RFCs: - HTTP Auth: <https://datatracker.ietf.org/doc/html/rfc7235> - OIDC: <https://datatracker.ietf.org/doc/html/rfc6749> - mTLS: <https://datatracker.ietf.org/doc/html/rfc8120> and <https://datatracker.ietf.org/doc/html/rfc8705> ## August 1, 2023 **Recording**: https://youtu.be/2SOCMLIdg10 ### Attendees - Brandon Mitchell - Jason Hall - Aviral Takkar - Jeff Carter - Sajay Antony - Josh Dolitsky - Nathan Anderson - Victor Lu - Vincent Batts - _add yourself_ ### Actionable Agenda Items - None ### Presentation/Discussion Agenda Items - Discuss what the participants would like to see out of this group - Procedural questions - Where to iterate and file issues etc. - _add your items_ ### Notes - [Repo creation request](https://github.com/opencontainers/tob/issues/127) - Josh: Jon (who isn't here) once shared this image with me and it changed my life <https://raw.githubusercontent.com/google/go-containerregistry/main/images/credhelper-basic.svg> - Jason: Consider adding docker authentication docs as a baseline and add to it if thats possibly - Jason: document the state of the world is the milestone. And really restrain on improving the state of the world? - Josh: <https://github.com/google/go-containerregistry/blob/ea19b579661d99bc753c92e93730b8aab6ecd31b/pkg/authn/README.md#the-registry> - Next steps / Action Items: - New repo creation - Document the Docker spec as it exists today - Gather use cases not covered by the existing Docker spec - Gather IETF/HTTP specs that can be leveraged - _add your notes_ ## Template ## Meeting Date ### Attendees - _add yourself_ ### Actionable Agenda Items - _add your items_ ### Presentation/Discussion Agenda Items - _add your items_ ### Notes - _add your notes_

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully