diff --git a/docs/api/status.md b/docs/api/status.md deleted file mode 100644 index dcc60f5..0000000 --- a/docs/api/status.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -id: status -title: Status -sidebar_label: Status ---- - -In the event you want to provide information on the certificate that there exists an updated version of it, you can make use of the [Status API](https://github.com/Open-Attestation/terraform-aws-status-api). Such case might happen when information that was provided on a certificate are gone stale, or that new information are available. For instance, as a university, you might want to provide certificate during mid-year with partial transcripts data, and then at the end of the year you might want to provide all transcripts data in the certificate. - -## Principle - -In order to integrate the Status API, collaboration will be necessary between some parts of the system. We will use the target hash embedded within wrapped certificate to uniquely identity them. - -> To get the target hash of a certificate, open a wrapped certificate and extract the value from the `signature.targetHash` field - -![Status API](/img/docs/api/status/overview.png) - -1. The target hash of each document must be stored somewhere (for instance in a database) along the data. -1. During the process that wraps documents, for each document: - 1. Call the Status API using the previous target hash, and set the status to `1` (let's assume that one means the document is stale). - 1. Save the new target hash into your database. -1. In the template renderer, call the Status API using the target hash of the provided document and display a message if the status is `1`. Hence when users will verify the certificate in OpenCerts, they will see a message if the document is stale. - -> Using `1` as a value for stale document is just for explanation purposes. You are free to use the value(s) you want. - -## Deployment - -We provide a [terraform module](https://github.com/Open-Attestation/terraform-aws-status-api) to help you deploy the API on AWS. - -> While terraform can help you to deploy on any cloud platform, the code of the API is highly dependant to AWS. - -## Usage - -### Adding/Updating a status -In the example that follows, we will set the status value to `1` for a document identified by the `abcd` target hash: -```bash -curl --location --request POST 'https:///abcd' \ ---header 'Content-Type: application/json' \ ---header 'x-api-key: ' \ ---data-raw '{ - "status": 1 -}' -``` -where: -- `` is the full URL to your deployed API. -- `abcd` is the target of the document to change the status **not** prepend with 0x. -- ``: is the API key to protect your API. - -The response to this call will look like: -```json -{ - "id":"abcd", - "status":1, - "timestamp":1583395314532 -} -``` - -### Getting the status of a document -In the example that follows we will retrieve the current status for a document identified by the `abcd` target hash: -```bash -curl --location --request GET 'https:///abcd' \ ---header 'Content-Type: application/json' \ ---header 'x-api-key: ' -``` -where: -- `` is the full URL to your deployed API. -- `abcd` is the target of the document to change the status **not** prepend with 0x. -- ``: is the API key to protect your API. - -```json -{ - "status": 1, - "events": [ - { - "id": "abcd", - "status": 1, - "timestamp": 1583395314532 - } - // eventually older events - ] -} -``` - -> If you provide a non-existing target hash, the response will return a default status with the value `0` - -## Additional information -- You can find an example of use of the API in [ACRA renderer](https://github.com/OpenCerts/acra-decentralized-renderer/blob/master/src/templates/core/headers.tsx#L80) diff --git a/docs/api/verify.md b/docs/api/verify.md deleted file mode 100644 index b0e2081..0000000 --- a/docs/api/verify.md +++ /dev/null @@ -1,170 +0,0 @@ ---- -id: verify -title: Verify API -sidebar_label: Verify ---- - -> Please note that this API has only been created for tests and demo purpose and as such doesn't provide any guarantee for systems that want to use it in production (no SLA). - -The purpose of this API is to provide a simple way to verify a document without any dependency. There is one API deployed for `mainnet` and one for `ropsten` : - -- https://api.opencerts.io/verify -- https://api-ropsten.opencerts.io/verify - -## Implementation - -The API is built using [OpenCerts verifier](/docs/verifier). It consists only to return the result returned by `verify` and `isValid` methods. The code is available in [Github](https://github.com/OpenCerts/opencerts-functions/blob/master/src/verify/index.js). - -## Usage - -Only one endpoint is available, at the root of the API, using the `POST` method: - -```bash -curl --header "Content-Type: application/json" \ - --request POST \ - --data '{"document":""}' \ - https://api-ropsten.opencerts.io/verify -``` - -The response will look like: - -- `summary` is an object containing the verification for each fragment types as well as the consolidated result. - - `summary.all` is a boolean indicating whether the document is valid or not. - - `summary.documentStatus` is a boolean indicating whether the document is valid for fragment with `DOCUMENT_STATUS` type. - - `summary.documentIntegrity` is a boolean indicating whether the document is valid for fragment with `DOCUMENT_INTEGRITY` type. - - `summary.issuerIdentity` is a boolean indicating whether the document is valid for fragment with `ISSUER_IDENTITY` type. -- data is an array containing the fragments returned by all the verifiers that ran over the provided document. - -For example: - -```json -{ - "summary": { - "all": true, - "documentStatus": true, - "documentIntegrity": true, - "issuerIdentity": true - }, - "data": [ - { - "type": "DOCUMENT_INTEGRITY", - "name": "OpenAttestationHash", - "data": true, - "status": "VALID" - }, - { - "name": "OpenAttestationEthereumDocumentStoreIssued", - "type": "DOCUMENT_STATUS", - "data": { - "issuedOnAll": true, - "details": [ - { - "address": "0x007d40224f6562461633ccfbaffd359ebb2fc9ba", - "issued": true - } - ] - }, - "status": "VALID" - }, - { - "status": "SKIPPED", - "type": "DOCUMENT_STATUS", - "name": "OpenAttestationEthereumTokenRegistryMinted", - "reason": { - "code": 4, - "codeString": "SKIPPED", - "message": "Document issuers doesn't have \"tokenRegistry\" property or TOKEN_REGISTRY method" - } - }, - { - "name": "OpenAttestationEthereumDocumentStoreRevoked", - "type": "DOCUMENT_STATUS", - "data": { - "revokedOnAny": false, - "details": [ - { - "address": "0x007d40224f6562461633ccfbaffd359ebb2fc9ba", - "revoked": false - } - ] - }, - "status": "VALID" - }, - { - "status": "SKIPPED", - "type": "ISSUER_IDENTITY", - "name": "OpenAttestationDnsTxt", - "reason": { - "code": 2, - "codeString": "SKIPPED", - "message": "Document issuers doesn't have \"documentStore\" / \"tokenRegistry\" property or doesn't use DNS-TXT type" - } - }, - { - "type": "ISSUER_IDENTITY", - "name": "OpencertsRegistryVerifier", - "status": "VALID", - "data": [ - { - "status": "VALID", - "value": "0x007d40224f6562461633ccfbaffd359ebb2fc9ba", - "name": "Government Technology Agency of Singapore (GovTech)", - "displayCard": true, - "website": "https://www.tech.gov.sg", - "email": "info@tech.gov.sg", - "phone": "+65 6211 2100", - "logo": "/static/images/GOVTECH_logo.png", - "id": "govtech-registry" - } - ] - } - ] -} -``` - -## Deployment - -If you want to have better control over the API and make sure it's always available, we offer scripts that help you to deploy it on your own AWS infrastructure: - -### Prerequisite - -You will need the following before proceeding to the deployment: - -- [git](https://git-scm.com/) -- [npm](https://nodejs.org/en/) -- one IAM user with an access key and a secret key. The user must be able to: - - create lambda function. - - manage api gateway. - - manage domains. -- root domain created and hosted in route 53. - -### Steps - -> The example below is for demonstration only, you must be careful on the way you expose the secret key and the access key, and you should follow aws security best practices. - -```bash -git clone git@github.com:OpenCerts/opencerts-functions.git -cd opencerts-functions -npm install - -# set environment variable -export AWS_SECRET_ACCESS_KEY= # user secret key -export AWS_ACCESS_KEY_ID= # user access key -export DOMAIN=some.domain.com # change to the domain you will deploy on -export CERTIFICATE_DOMAIN=*.domain.com # change to the domain you will deploy on - -# create domain, this must be done once only -npm run create-domain:verify - -# deploy for staging -export NETWORK=ropsten -npm run deploy:verify -- --stage stg - -# deploy for production -export NETWORK=homestead -npm run deploy:verify -- --stage prd -``` - -The API should then be available under `https://some.domain.com/verify` - -> If you wish to deploy the API at the root path, open `src/verify/serverless.yml` and remove `basePath` diff --git a/docs/help/faq.md b/docs/help/faq.md deleted file mode 100644 index fa256b1..0000000 --- a/docs/help/faq.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -id: faq -title: FAQ -sidebar_label: FAQ ---- - -Here you will find a collection of links that may be useful to help you to start or work with OpenCerts. - -## Document Store - -- [How to create and deploy a document store?](https://www.openattestation.com/docs/ethereum-section/document-store) -- [How to configure your identity through DNS-TXT?](https://www.openattestation.com/docs/ethereum-section/dns-proof/) -- [How to develop and deploy templates for your certificates?](https://www.openattestation.com/docs/guides-section/renderer-template) -- [How to issue documents?](https://www.openattestation.com/docs/ethereum-section/issue-document) -- [Where is OpenCerts Admin Portal?](https://admin.opencerts.io/) - -## Understanding OpenCerts Architecture - -- [What is OpenAttestation?](https://www.openattestation.com/docs/overview-section/overview) -- [How does Decentralized Renderer works?](https://github.com/Open-Attestation/adr/blob/master/decentralised_rendering.md) -- [How does DNS-TXT identity proof works?](https://github.com/Open-Attestation/adr/blob/master/decentralized_identity_proof_DNS-TXT.md) -- [Does OpenCerts verifier follow a specification?](https://github.com/Open-Attestation/adr/blob/master/verifier.md) - -## Implementation Help - -- [Technical Query](https://form.gov.sg/692580cf75241c91db4ef3da) diff --git a/netlify.toml b/netlify.toml deleted file mode 100644 index 278321c..0000000 --- a/netlify.toml +++ /dev/null @@ -1,2 +0,0 @@ -[build] - ignore = "git diff --quiet HEAD^ HEAD .." diff --git a/website/_headers b/website/_headers deleted file mode 100644 index e2584f3..0000000 --- a/website/_headers +++ /dev/null @@ -1,3 +0,0 @@ -/* - X-Frame-Options: DENY - Content-Security-Policy: default-src 'self' cdn.jsdelivr.net cdnjs.cloudflare.com buttons.github.io; frame-ancestors 'none'; \ No newline at end of file diff --git a/website/_redirects b/website/_redirects deleted file mode 100644 index 07befc5..0000000 --- a/website/_redirects +++ /dev/null @@ -1,2 +0,0 @@ -# https://www.pivotaltracker.com/n/projects/2397228/stories/172909260 -/identity_registry /docs/registry diff --git a/website/blog/2020-03-13-new-doc.md b/website/blog/2020-03-13-new-doc.md deleted file mode 100644 index 0122c43..0000000 --- a/website/blog/2020-03-13-new-doc.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: OpenCerts New Documentation -authors: - - name: Laurent Maillet - url: https://twitter.com/Nebounet - image_url: https://lh3.googleusercontent.com/-kb0aLUOV4ek/AAAAAAAAAAI/AAAAAAAAAAA/AKF05nAdhdRMUzxqvrX-aSDCkiILApv-pQ.CMID/s192-c/photo.jpg ---- - -
-

🎉 Welcome to the brand new OpenCerts documentation 🎉

-
- -## Documentation organisation - -We have worked on revamping the documentation to make a clear distinction between OpenAttestation documentation and OpenCerts documentation. - -One might be confuse to understand the difference between OpenAttestation and OpenCerts: - -- OpenAttestation is a standard that helps to create Verifiable Document. -- OpenCerts is a specific implementation, using OpenAttestation, whose purpose is to provide institutions a way to create Verifiable Certificates. - -In OpenCerts documentation we will then focus only on what's specific to OpenCerts: - -- [How to create valid OpenCerts transcripts?](/docs/transcripts) -- [OpenCerts verifiers.](/docs/verifier) -- [OpenCerts verify API.](/docs/api/verify) -- [Suggestion to perform live transcripts.](/docs/api/status) - -Other useful links: - -- [OpenAttestation documentation](http://openattestation.com/) -- [OpenCerts Legacy documentation](/docs/v1) - -## What happened in OpenCerts recently? - -While we were working on the documentation, we also created many components that might be useful for OpenCerts integrators: - -### OpenAttestation CLI - -We worked on **OpenAttestation CLI** to add a new option when wrapping documents. This option allow you to specify a URL to a custom schema to ensure the validity of the document you wrap. [Read more in the documentation](/docs/transcripts). - -There are 2 differences between OpenCerts CLI and OpenAttestation CLI: - -- OpenAttestation CLI force you to use `documentStore` instead of `certificateStore` (don't worry they are strictly equivalent). -- OpenAttestation CLI force you to provide `identityProof` using DNS-TXT record. - -> We strongly recommend and encourage to use OpenAttestation CLI in the future. OpenCerts CLI will be deprecated. - -### OpenCerts verifier - -OpenCerts identity verification is based on a registry maintained by SSG. Because of this, OpenCerts identity verification is not compatible with OpenAttestation identity verification. - -To overcome this problem, we built a javascript library `@govtechsg/opencerts-verify` that check the identity over OpenCerts registry and over DNS-TXT record. [Read more in the documentation](/docs/verifier). - -### OpenCerts verify API - -Sometimes during development you might need to make sure a certificate that you generated is valid. While you could use [dev.opencerts.io](https://dev.opencerts.io) to assert the validity of the certificate, the process is hard to automate and tedious. - -To help you on this, we published an API that you might use to validate certificate using HTTP call. [Read more in the documentation](/docs/api/verify) - -> This API does not provide any guarantee for production purposes. We might work on providing a terraform module that you could use to deploy the API on your own infrastructure. - -### Live transcripts - -For institutions that might want to provide live transcripts to their students, we wrote documentation on how they can make use of OpenAttestation Status API. The documentation is just an implementation suggestion and does not mean you **MUST** follow it. [Read more in the documentation](/docs/api/status) diff --git a/website/blog/2020-05-12-multi-issuers.md b/website/blog/2020-05-12-multi-issuers.md deleted file mode 100644 index b2d1c67..0000000 --- a/website/blog/2020-05-12-multi-issuers.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Multi issuers and deploy verify API -authors: - - name: Laurent Maillet - url: https://twitter.com/Nebounet - image_url: https://lh3.googleusercontent.com/-kb0aLUOV4ek/AAAAAAAAAAI/AAAAAAAAAAA/AKF05nAdhdRMUzxqvrX-aSDCkiILApv-pQ.CMID/s192-c/photo.jpg ---- - -As part of our efforts to ease the adoption of OpenCerts, we have worked on several items for the past weeks. - -### Multi issuers - -While having multiple issuers has always been available in OpenCerts, there has been no documentation on this feature, as well how it differs from single issuer documents. The use cases might be rare (for instance when there is a collaboration between multiple institutions), but now [we got you covered](/docs/multi-issuer). - -### Deploy verify API - -We have been providing an [API to verify OpenCerts document](https://github.com/OpenCerts/opencerts-functions) for quite awhile, however we don't provide support or SLA for it. This resulted in people copying and pasting the code and then deploying it into their own infrastructure. - -The repository already contained scripts to automatically deploy to different infrastructure, but there was another complication. The repository contains multiple functions and while you might be interested by the API to verify documents, you might not be interested in the other APIs. - -We have worked on that and improved it: - -- every API is independently deployable (including verify API) -- the process is [documented](/docs/api/verify#deployment) - -### Migration from v1 to v2 - -When revamping the documentation, we missed the article that covered the migration from v1 to v2. We fixed that problem, and [the documentation is available again](/docs/v2/migrations/v1_to_v2) - -> For any feedback, feel free to reach us out on [Github](https://github.com/OpenCerts). diff --git a/website/blog/2020-10-08-new-error-types.md b/website/blog/2020-10-08-new-error-types.md deleted file mode 100644 index c634758..0000000 --- a/website/blog/2020-10-08-new-error-types.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: New error types for better error handling -authors: - - name: Jia Jian Goi - url: https://www.linkedin.com/in/jiajian/ - image_url: https://lh3.googleusercontent.com/ogw/ADGmqu_9HzINF5cbSsYkYuo-PztvTbj6_xHJm_sGRKVH=s192-c-mo ---- - -A good part of software engineering [is to handle errors](https://medium.com/swlh/getting-error-handling-right-9a1d39da0fa3) that arise from your application. At GovTech, we understand the importance of having good error handling practices too. - -In this post, we detail some of our recent upgrades to the [`opencerts-verify`](https://github.com/OpenCerts/verify/pull/10) library that improves the error handling coverage when attempting to verify OpenCerts or OpenAttestation documents. - -### Introduction - -In the past, `opencerts-verify` could only handle just a few types of errors. With the increasing usage of OpenCerts in recent months due to the Covid-19 pandemic, we've seen a wide variety of interesting and funky errors. - -For example, - -- Infura and Cloudflare would rate-limit you if you try to spam them through our verifier, and thus returns a HTTP 429 Too Many Requests error -- Cloudflare's Ethereum Gateway would [randomly return](https://community.cloudflare.com/t/ethereum-gateway-random-502-error/195144) a HTTP 502 Bad Gateway error -- Users will try to _tamper_ with their certificate, just for the fun of it or to test our OpenCerts verifier 😉 - -For the first two scenarios, our OpenCerts verifier would previously show that the certificate is invalid. That's because we didn't handle HTTP errors in `opencerts-verify`. - -For the last scenario, our OpenCerts verifier didn't handle those cases properly and instead, our opencerts.io frontend verifier will say that it's **(a)** not issued and **(b)** revoked at the same time. While such a case can happen, it clearly doesn't reflect the actual error — that is, the user probably tampered with the certificate's `merkleRoot`. I'll describe more later in the [Invalid Argument](#invalid_argument) section. - -### New errors - -From `opencerts-verify` version `2.2.0`, we introduced the handling of these few errors and they are: - -- `SERVER_ERROR` -- `INVALID_ARGUMENT` - -#### `SERVER_ERROR` - -This error encompasses Ethers's `{ "bad response", "failed response", "missing response" }`. - -To recap, - -> A `4xx` code indicates an error caused by the user, whereas `5xx` codes tell the client that they did everything correctly and it's the server itself who caused the problem. - -Generally, Ethers classify both `4xx` and `5xx` errors as `bad response`. - -(For those who're interested in how Ethers handle HTTP-related errors internally, you might want to take a look at [this](https://github.com/ethers-io/ethers.js/blob/9640e864a68b4a9e84e820f0ceaf1eb56c66715f/packages/web/src.ts/index.ts).) - -Instead of checking for Ethers _error messages_ (e.g. bad response, missing response, etc.), we now group them using Ethers _error codes_ (e.g. `SERVER_ERROR`) wherever possible — because there are just too many different error messages to handle. - -Do note that error messages are NOT the same as error codes, you can think of error codes as an umbrella term for many error messages. - -As for our decision to group both **(a)** user errors and **(b)** server errors together, that's because we don't need to have a finer level of granularity at this moment (i.e. we don't need to know that it's `4xx` vs `5xx`). - -#### `INVALID_ARGUMENT` - -As the name suggests, the `INVALID_ARGUMENT` error means the input argument is invalid. In this case, we're referring to the merkle root. - -Because our verifier uses the document's `merkleRoot` to check against what's stored on the Ethereum blockchain, there were cases where users have tried to mess with their certificate. - -Below are three examples of invalid `merkleRoot`s: - -- `61dc9186345e05cc2ae53dc72af880a3b66e2fa7983feaa6254d1518540de5` is even length, but is not 64 characters (or 32 bytes) as required of merkle roots - Ethers returns error message `incorrect data length` -- `61dc9186345e05cc2ae53dc72af880a3b66e2fa7983feaa6254d1518540de50` is not of a valid length - Ethers returns error message `hex is of odd-length` - -- `61dc9186345e05cc2ae53dc72af880a3b66e2fa7983feaa6254d1518540de50Z` is of valid length, BUT contains an invalid character (the `Z`) - Ethers returns error message `invalid hex string` - -All three examples above are classified as `INVALID_ARGUMENT` from `opencerts-verify` version `2.2.0`. - -For good measure, `61dc9186345e05cc2ae53dc72af880a3b66e2fa7983feaa6254d1518540de50a` is OK, leaving this here for an example of a valid `merkleRoot` to provide context for the three errors above. - -### Further discussion - -That's all for now! - -> For any feedback, feel free to reach us out on [GitHub](https://github.com/OpenCerts). diff --git a/website/blog/2020-11-17-transcript-2.1.md b/website/blog/2020-11-17-transcript-2.1.md deleted file mode 100644 index 3756d6b..0000000 --- a/website/blog/2020-11-17-transcript-2.1.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Transcript v2.1 -authors: - - name: Laurent Maillet - url: https://twitter.com/Nebounet - image_url: https://lh3.googleusercontent.com/-kb0aLUOV4ek/AAAAAAAAAAI/AAAAAAAAAAA/AKF05nAdhdRMUzxqvrX-aSDCkiILApv-pQ.CMID/s192-c/photo.jpg ---- - -### Transcript v2.1 - -We added support for skills in [the latest version of OpenCerts transcripts schema](https://schema.opencerts.io/transcripts/2.1). The skills will enrich your OpenCerts using the definition provided by [WSG skills framework](https://www.skillsfuture.gov.sg/skills-framework). A skill looks like: - -```json -{ - "frameworkUri": "https://www.skillsfuture.sg/skills-framework", - "frameworkVersion": "1.0", - "frameworkName": "SFw", - "sector": "Air Transport", - "category": "Aircraft Operations", - "competencyCode": "ATP-ACO-4001-1.1", - "competencyDescription": "Monitor aircraft systems, performance and external environments as well as comply with Air Traffic Control (ATC) instructions and en route navigation requirements to ensure safe and optimal flight conditions", - "competencyLevel": "Level 4", - "competencyLevelDescription": "Analyse aircraft performance through close monitoring of flight decks to ensure optimal flight conditions during cruise" -} -``` - -You can add as many skills as needed. You can find a [full example here](https://raw.githubusercontent.com/OpenCerts/open-certificate/master/schema/transcripts/2.1/example.json) - -### Migration legacy to new renderer - -In order to help more institution to adopt the decentralized architecture of OpenCerts v2, we have created a [guide](/docs/v2/migrations/migrate_renderer) to help early adopter to migrate from the legacy render to the decentralized renderer. diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index b44af6b..3b35085 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -7,10 +7,10 @@ const config = { tagline: "An easy way to check and verify your certificates", favicon: "img/favicon.svg", - url: "https://opencerts.io", + url: "https://docs.opencerts.io", baseUrl: "/", - organizationName: "Govtech", + organizationName: "IMDA", projectName: "opencerts-documentation", onBrokenLinks: "warn", @@ -51,11 +51,7 @@ const config = { }, }, }, - blog: { - showReadingTime: true, - onInlineAuthors: "ignore", - onUntruncatedBlogPosts: "ignore", - }, + blog: false, theme: { customCss: require.resolve("./src/css/custom.css"), }, @@ -74,17 +70,10 @@ const config = { src: "img/favicon.svg", }, items: [ - { - type: "doc", - docId: "index", - position: "left", - label: "Docs", - }, { type: "docsVersionDropdown", position: "right", }, - { to: "/blog", label: "Blog", position: "left" }, ], }, footer: { @@ -112,10 +101,6 @@ const config = { label: "Getting Started", to: "/docs", }, - { - label: "APIs Reference", - to: "/docs/api/verify", - }, ], }, { @@ -130,10 +115,6 @@ const config = { { title: "More", items: [ - { - label: "Blog", - to: "/blog", - }, { label: "GitHub", href: "https://github.com/Opencerts", @@ -148,8 +129,8 @@ const config = { darkTheme: themes.dracula, }, algolia: { - appId: "BH4D9OD16A", - apiKey: "7231563d1db842994698da0a519e93c8", + appId: "HCPQ0M479I", + apiKey: "3ad9c57c64dde8b6e48aaf70e0e7b979", indexName: "opencerts", }, colorMode: { diff --git a/website/package.json b/website/package.json index 85b8e99..3883169 100644 --- a/website/package.json +++ b/website/package.json @@ -5,7 +5,7 @@ "scripts": { "docusaurus": "docusaurus", "start": "docusaurus start", - "build": "docusaurus build && cp ./_redirects build/ && cp ./_headers build/", + "build": "docusaurus build", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", "clear": "docusaurus clear", diff --git a/website/sidebars.js b/website/sidebars.js index c4b5288..5c33286 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -12,11 +12,6 @@ const sidebars = { "multi-issuer", ], }, - { - type: "category", - label: "API", - items: ["api/verify", "api/status"], - }, { type: "category", label: "Migrations", @@ -28,7 +23,7 @@ const sidebars = { { type: "category", label: "Misc", - items: ["help/faq", "admin-website", "help/linkedin"], + items: ["admin-website", "help/linkedin"], }, ], }; diff --git a/website/src/pages/index.js b/website/src/pages/index.js index b7a4251..676774f 100644 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -1,93 +1,10 @@ import React from "react"; -import clsx from "clsx"; +import { Redirect } from "@docusaurus/router"; import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import Layout from "@theme/Layout"; -import styles from "./index.module.css"; - -function HomeSplash() { - const { siteConfig } = useDocusaurusContext(); - return ( -
-
- -
- OpenCerts -
-
-
- ); -} - -function Feature({ image, title, dark }) { - return ( -
-
-

{title}

- {title} -
-
- ); -} +// Landing page now redirects straight to the docs Getting Started page. export default function Home() { const { siteConfig } = useDocusaurusContext(); - return ( - - -
- - -
-
- ); + const docsUrl = `${siteConfig.baseUrl}docs`.replace(/\/{2,}/g, "/"); + return ; }