|
| 1 | +# Our Infrastructure |
| 2 | + |
| 3 | +First, let's address some details of this document. |
| 4 | + |
| 5 | +<details> |
| 6 | + <summary>What, why, who...</summary> |
| 7 | + |
| 8 | + ## What? |
| 9 | + |
| 10 | + This document outlines the various systems that JSON Schema the organisation uses and maintains. |
| 11 | + This does not include social media profiles. |
| 12 | + |
| 13 | + ## Why? |
| 14 | + |
| 15 | + It's part of the required tasks to be completed by the OpenJS Foundation, forming an item of the [onboarding checklist](https://github.com/openjs-foundation/cross-project-council/blob/main/PROJECT_PROGRESSION.md#onboarding-checklist). |
| 16 | + It's also probably good practice. |
| 17 | + |
| 18 | + This enables members of the JSON Schema team, and the OpenJS Foundation, to have oversight and management of such infrastructure should it be required. |
| 19 | + |
| 20 | + ## Who? |
| 21 | + |
| 22 | + This was mainly a list created by Ben Hutton (@relequestual). |
| 23 | + Others are free to amend and update this (via Pull Requests) as is required. |
| 24 | + |
| 25 | +</details> |
| 26 | + |
| 27 | +JSON Schema mostly operates on GitHub and Slack. |
| 28 | + |
| 29 | +Our GitHub organisation is located at https://github.com/orgs/json-schema-org. |
| 30 | + |
| 31 | +Our Slack server is located at https://json-schema.slack.com. |
| 32 | +(Anyone can join using https://json-schema.org/slack.) |
| 33 | + |
| 34 | +The JSON Schema organisation maintains ONE domain name: json-schema.org. |
| 35 | + |
| 36 | +The domain name is registered and paid for by the OpenJS Foundation. |
| 37 | + |
| 38 | +The domain name defers its name servers to CloudFlare. |
| 39 | +The DNS mostly points to GitHub. |
| 40 | + |
| 41 | +The website is split into several applications for historical reasons. |
| 42 | + |
| 43 | +The main website is run through GitHub Pages. The source code is located at https://github.com/json-schema-org/json-schema-org.github.io. |
| 44 | + |
| 45 | +A key set of resources hosted by the site are the JSON Schema meta-schemas, which are used to indicate which schemas are themselves valid for each version of the specification. |
| 46 | +These resources are potentially heavily used or referred to by consumers of JSON Schema. |
| 47 | +Links to these resources can be found at https://json-schema.org/specification.html for the latest version of JSON Schema, and at https://json-schema.org/specification-links.html for older versions. |
| 48 | +The working location for these resources is in the specification repository at https://github.com/json-schema-org/json-schema-spec/, and they are then included into the aforementioned website repository for publishing using `git submodule`. |
| 49 | + |
| 50 | +The human friendly documentation for the specification, dubbed "Understanding JSON Schema", is located at https://json-schema.org/understanding-json-schema. |
| 51 | +The source for this project is located at https://github.com/json-schema-org/understanding-json-schema. |
| 52 | + |
| 53 | +Both of these sites are deployed by GitHub onto GitHub Pages. |
| 54 | + |
| 55 | +The JSON Schema blog is located at https://json-schema.org/blog. |
| 56 | +The source code is located at https://github.com/json-schema-org/blog. |
| 57 | +The blog is deployed on CloudFlare Pages. |
| 58 | +The CloudFlare pages name is `json-schema-blog`. |
| 59 | +The blog URL is redirected using CloudFlare workers. |
| 60 | +The redirection worker is called `blogredirect`. |
| 61 | +(It may now be possible to do the redirect using URL rewriting, but it was broken at the time, and their community support suggested using Workers.) |
| 62 | + |
| 63 | +The main site and the understanding site get deploy previews via Netlify. |
| 64 | +Unfortunately, CloudFlare pages does not offer deployment previews on Pull Requests where the Pull Request comes from a fork of the project (while netlify does, and for free). |
| 65 | + |
| 66 | +The Slack server has a number of bots which feed data into specific channels. |
| 67 | + |
| 68 | +The bot which feeds tweets containing JSON Schema from Twitter to the #twitter-mentions channel was created by [Mike Ralphson](https://twitter.com/PermittedSoc). We have no access to it, and it currently (as of 2022-05-26) needs to be replaced as it's acting up. |
| 69 | + |
| 70 | +The bot for #stack-overflow runs from If This Then That under @relequestual 's account. It should probably be migrated to Zapier. |
| 71 | + |
| 72 | +The #github channel bot uses the official Github Slack app, and runs all Github events from all of our repositories, apart from GitHub Discussions. |
| 73 | + |
| 74 | +The #ghd-community channel bot uses Zapier to process webhooks for our Community repo's GitHub Discussions, and relay to Slack. |
| 75 | +The Zapier account is owned and paid for by Postman. If this ever might become a problem, we should move to our own licence. |
| 76 | +At the time, there was no official app integration. |
| 77 | + |
| 78 | + |
| 79 | +If you believe something is missing from this documentation, [please file an issue](https://github.com/json-schema-org/community/issues/new?assignees=&labels=&template=action_item.md). |
0 commit comments