Skip to content

Commit 27ece13

Browse files
authored
Merge pull request #168 from Relequestual/167-identify-and-document-other-core-project-infrastructure
Add initial infrastructure document
2 parents 09719d2 + ec33273 commit 27ece13

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

INFRASTRUCTURE.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
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

Comments
 (0)