Commit fe3f4be
authored
feat: stabilize public http interface & slimmer docker (#882)
This pull request restructures how the frontend assets and OpenAPI
specification are built, served, and referenced throughout the
application. The changes standardize the output locations, improve
Docker and CI integration, and update documentation and code references
to reflect these new conventions. The most important changes are grouped
below.
**Frontend build and serving changes:**
- The frontend build output is now placed in `frontend/dist` instead of
`public/frontend`, and the app serves static assets from this new
directory at the root path (`/`). This affects the Docker build, static
file serving configuration, and bookmarklet logic.
(`[[1]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L96-R96)`,
`[[2]](diffhunk://#diff-f965f92b425fb2f75d38b491b2625fe21b8af20b7666217546bce8a42b198ea4R34-R35)`,
`[[3]](diffhunk://#diff-f965f92b425fb2f75d38b491b2625fe21b8af20b7666217546bce8a42b198ea4R85-R88)`,
`[[4]](diffhunk://#diff-f965f92b425fb2f75d38b491b2625fe21b8af20b7666217546bce8a42b198ea4L103-R110)`,
`[[5]](diffhunk://#diff-97c6e2c429ec483132c584137a18a1ade2ff6c3f4f6485f4a83db604d0323d7cR5)`,
`[[6]](diffhunk://#diff-97c6e2c429ec483132c584137a18a1ade2ff6c3f4f6485f4a83db604d0323d7cL22-R23)`,
`[[7]](diffhunk://#diff-7252f6c43b3cf192bd50ce66192ddce81eca27815a4b99eb57366d25e3715f07L9-R9)`,
`[[8]](diffhunk://#diff-1f633b86af4bf00bbb33177b2e1a51a960711d1bb9901ce853b34e53d6bd7d14L275-R281)`,
`[[9]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L104-R104)`,
`[[10]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L23-R23)`,
`README.md`, `docs/README.md`)
**OpenAPI specification changes:**
- The OpenAPI YAML file is now generated to and served from
`public/openapi.yaml` instead of `docs/api/v1/openapi.yaml`. All
references, build scripts, and tests have been updated accordingly. The
versioned API route `/api/v1/openapi.yaml` now redirects to
`/openapi.yaml`.
(`[[1]](diffhunk://#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52L105-R124)`,
`[[2]](diffhunk://#diff-ee98e028c59b193d58fde56ab4daf54d43c486ae674e63d50ddf300b07943e0fL99-R106)`,
`[[3]](diffhunk://#diff-74d6d27981dace9acd4886bdcdc2fb9776477f7b22557e92832eb4cf46fb98cdL18-R18)`,
`[[4]](diffhunk://#diff-28a08a74a84f026c2e107160e332d32db8c8338eaf53cf6c7930f6ff00afe952L26-R26)`,
`[[5]](diffhunk://#diff-28a08a74a84f026c2e107160e332d32db8c8338eaf53cf6c7930f6ff00afe952L58-L80)`,
`[[6]](diffhunk://#diff-da6498268e99511d9ba0df3c13e439d10556a812881c9d03955b2ef7c6c1c655L14-R15)`,
`[[7]](diffhunk://#diff-0f9368690552ac79a208dde6e3f09cf9f4e350e910d0de10c35dc2cc235479b1L85-R85)`,
`[[8]](diffhunk://#diff-1f633b86af4bf00bbb33177b2e1a51a960711d1bb9901ce853b34e53d6bd7d14L56-R56)`,
`[[9]](diffhunk://#diff-347625202f0133fd177c976e7499085afcda2d709947a82294435a16276bd228L12-R12)`,
`[[10]](diffhunk://#diff-7725db5f3a9f3b853587e27b2462cf1b84ead50477855af692f72bb6e159cca5L452-L466)`,
`[[11]](diffhunk://#diff-39eaafdff54bffed770574d0dd758902acc94553d5bb2fb5eab86903fc2efff5L117-R117)`,
`[[12]](diffhunk://#diff-39eaafdff54bffed770574d0dd758902acc94553d5bb2fb5eab86903fc2efff5L142-R147)`,
`[[13]](diffhunk://#diff-0b5ca119d2be595aa307d34512d9679e49186307ef94201e4b3dfa079aa89938L7-R12)`,
`[[14]](diffhunk://#diff-0b5ca119d2be595aa307d34512d9679e49186307ef94201e4b3dfa079aa89938L58-R58)`,
`README.md`, `docs/README.md`)
**Continuous Integration and Docker improvements:**
- The CI workflow now installs frontend dependencies and verifies both
the OpenAPI spec and client generation in a single step using `make
openapi-verify`. Node dependencies are cached for faster builds, and the
Docker build uses the new frontend output path.
(`[[1]](diffhunk://#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03fR61-R69)`,
`[[2]](diffhunk://#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03fL86-L88)`,
`[[3]](diffhunk://#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557L96-R96)`,
`.dockerignore`)
**Documentation and tests:**
- All documentation, helper text, and tests have been updated to match
the new asset and OpenAPI spec locations, ensuring consistency and
preventing confusion for contributors. (`README.md`, `docs/README.md`,
`frontend/package.json`, `frontend/src/__tests__`,
`spec/html2rss/web/api/v1_spec.rb`)
**Miscellaneous:**
- The frontend favicon is now referenced as `/favicon.ico` instead of an
inline SVG.
(`[frontend/index.htmlL11-R11](diffhunk://#diff-959f9cada636604db33bc1ba82fed347457dcb032c37ac195b4343c5f0ea6e72L11-R11)`)1 parent ead6312 commit fe3f4be
25 files changed
Lines changed: 61 additions & 113 deletions
File tree
- .github/workflows
- app/web
- api/v1
- routes/api_v1
- docs
- frontend
- src
- __tests__
- mocks
- api/generated
- components
- public
- spec
- html2rss/web
- api
- support
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
61 | 67 | | |
62 | | - | |
63 | | - | |
| 68 | + | |
| 69 | + | |
64 | 70 | | |
65 | 71 | | |
66 | 72 | | |
| |||
83 | 89 | | |
84 | 90 | | |
85 | 91 | | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | 92 | | |
90 | 93 | | |
91 | 94 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
43 | 42 | | |
44 | 43 | | |
45 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
96 | | - | |
| 96 | + | |
97 | 97 | | |
98 | 98 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
105 | | - | |
| 105 | + | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
| 108 | + | |
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
112 | | - | |
| 112 | + | |
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
| 118 | + | |
119 | 119 | | |
120 | 120 | | |
121 | | - | |
| 121 | + | |
122 | 122 | | |
123 | 123 | | |
124 | | - | |
| 124 | + | |
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
88 | | - | |
| 88 | + | |
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
| 104 | + | |
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
99 | | - | |
100 | | - | |
| 99 | + | |
| 100 | + | |
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
106 | | - | |
| 106 | + | |
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
34 | 36 | | |
35 | 37 | | |
36 | 38 | | |
| |||
80 | 82 | | |
81 | 83 | | |
82 | 84 | | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
83 | 89 | | |
84 | 90 | | |
85 | 91 | | |
| |||
100 | 106 | | |
101 | 107 | | |
102 | 108 | | |
103 | | - | |
104 | 109 | | |
105 | | - | |
| 110 | + | |
106 | 111 | | |
107 | 112 | | |
108 | 113 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
| 26 | + | |
28 | 27 | | |
29 | 28 | | |
30 | 29 | | |
| |||
55 | 54 | | |
56 | 55 | | |
57 | 56 | | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | 57 | | |
64 | 58 | | |
65 | 59 | | |
66 | 60 | | |
67 | 61 | | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | 62 | | |
82 | 63 | | |
83 | 64 | | |
| |||
0 commit comments