@teleporthq/teleport-plugin-next-data-source 0.44.14 → 0.44.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/_helpers/exposure.ts +29 -0
- package/__tests__/_helpers/first-page-runtime.ts +12 -2
- package/__tests__/blog-post-contents.test.ts +3 -1
- package/__tests__/blog-post-page-enrichment.test.ts +2 -1
- package/__tests__/blog-post-seo-fields.test.ts +124 -0
- package/__tests__/browser-row-policy.test.ts +65 -5
- package/__tests__/data-source-cache-wrapping.test.ts +48 -7
- package/__tests__/external-read-routes-guard.test.ts +991 -0
- package/__tests__/null-filter-where.test.ts +19 -2
- package/__tests__/range-control.test.ts +29 -0
- package/__tests__/search-relevance.test.ts +42 -6
- package/__tests__/table-read-route-protected-tables.test.ts +54 -4
- package/dist/cjs/count-fetchers.d.ts.map +1 -1
- package/dist/cjs/count-fetchers.js +1 -1
- package/dist/cjs/count-fetchers.js.map +1 -1
- package/dist/cjs/data-source-fetchers.d.ts +4 -0
- package/dist/cjs/data-source-fetchers.d.ts.map +1 -1
- package/dist/cjs/data-source-fetchers.js +97 -20
- package/dist/cjs/data-source-fetchers.js.map +1 -1
- package/dist/cjs/fetchers/postgresql.d.ts +3 -1
- package/dist/cjs/fetchers/postgresql.d.ts.map +1 -1
- package/dist/cjs/fetchers/postgresql.js +11 -3
- package/dist/cjs/fetchers/postgresql.js.map +1 -1
- package/dist/cjs/fetchers/raw-query.d.ts +20 -1
- package/dist/cjs/fetchers/raw-query.d.ts.map +1 -1
- package/dist/cjs/fetchers/raw-query.js +37 -7
- package/dist/cjs/fetchers/raw-query.js.map +1 -1
- package/dist/cjs/fetchers/redshift.d.ts.map +1 -1
- package/dist/cjs/fetchers/redshift.js +2 -1
- package/dist/cjs/fetchers/redshift.js.map +1 -1
- package/dist/cjs/fetchers/teleport.d.ts.map +1 -1
- package/dist/cjs/fetchers/teleport.js +5 -3
- package/dist/cjs/fetchers/teleport.js.map +1 -1
- package/dist/cjs/fetchers/utils/external-read-guard.d.ts +53 -0
- package/dist/cjs/fetchers/utils/external-read-guard.d.ts.map +1 -0
- package/dist/cjs/fetchers/utils/external-read-guard.js +126 -0
- package/dist/cjs/fetchers/utils/external-read-guard.js.map +1 -0
- package/dist/cjs/fetchers/utils/table-access-guard.d.ts +76 -12
- package/dist/cjs/fetchers/utils/table-access-guard.d.ts.map +1 -1
- package/dist/cjs/fetchers/utils/table-access-guard.js +123 -15
- package/dist/cjs/fetchers/utils/table-access-guard.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/pagination-controls.d.ts +4 -1
- package/dist/cjs/pagination-controls.d.ts.map +1 -1
- package/dist/cjs/pagination-controls.js +4 -1
- package/dist/cjs/pagination-controls.js.map +1 -1
- package/dist/cjs/pagination-plugin.js +1 -0
- package/dist/cjs/pagination-plugin.js.map +1 -1
- package/dist/cjs/range-control.d.ts +10 -5
- package/dist/cjs/range-control.d.ts.map +1 -1
- package/dist/cjs/range-control.js +23 -2
- package/dist/cjs/range-control.js.map +1 -1
- package/dist/cjs/transformations/blog-post.d.ts +5 -0
- package/dist/cjs/transformations/blog-post.d.ts.map +1 -1
- package/dist/cjs/transformations/blog-post.js +6 -2
- package/dist/cjs/transformations/blog-post.js.map +1 -1
- package/dist/cjs/transformations/index.d.ts +18 -2
- package/dist/cjs/transformations/index.d.ts.map +1 -1
- package/dist/cjs/transformations/index.js +26 -1
- package/dist/cjs/transformations/index.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/count-fetchers.d.ts.map +1 -1
- package/dist/esm/count-fetchers.js +1 -1
- package/dist/esm/count-fetchers.js.map +1 -1
- package/dist/esm/data-source-fetchers.d.ts +4 -0
- package/dist/esm/data-source-fetchers.d.ts.map +1 -1
- package/dist/esm/data-source-fetchers.js +97 -20
- package/dist/esm/data-source-fetchers.js.map +1 -1
- package/dist/esm/fetchers/postgresql.d.ts +3 -1
- package/dist/esm/fetchers/postgresql.d.ts.map +1 -1
- package/dist/esm/fetchers/postgresql.js +12 -4
- package/dist/esm/fetchers/postgresql.js.map +1 -1
- package/dist/esm/fetchers/raw-query.d.ts +20 -1
- package/dist/esm/fetchers/raw-query.d.ts.map +1 -1
- package/dist/esm/fetchers/raw-query.js +38 -8
- package/dist/esm/fetchers/raw-query.js.map +1 -1
- package/dist/esm/fetchers/redshift.d.ts.map +1 -1
- package/dist/esm/fetchers/redshift.js +2 -1
- package/dist/esm/fetchers/redshift.js.map +1 -1
- package/dist/esm/fetchers/teleport.d.ts.map +1 -1
- package/dist/esm/fetchers/teleport.js +6 -4
- package/dist/esm/fetchers/teleport.js.map +1 -1
- package/dist/esm/fetchers/utils/external-read-guard.d.ts +53 -0
- package/dist/esm/fetchers/utils/external-read-guard.d.ts.map +1 -0
- package/dist/esm/fetchers/utils/external-read-guard.js +118 -0
- package/dist/esm/fetchers/utils/external-read-guard.js.map +1 -0
- package/dist/esm/fetchers/utils/table-access-guard.d.ts +76 -12
- package/dist/esm/fetchers/utils/table-access-guard.d.ts.map +1 -1
- package/dist/esm/fetchers/utils/table-access-guard.js +119 -15
- package/dist/esm/fetchers/utils/table-access-guard.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/pagination-controls.d.ts +4 -1
- package/dist/esm/pagination-controls.d.ts.map +1 -1
- package/dist/esm/pagination-controls.js +4 -1
- package/dist/esm/pagination-controls.js.map +1 -1
- package/dist/esm/pagination-plugin.js +1 -0
- package/dist/esm/pagination-plugin.js.map +1 -1
- package/dist/esm/range-control.d.ts +10 -5
- package/dist/esm/range-control.d.ts.map +1 -1
- package/dist/esm/range-control.js +23 -2
- package/dist/esm/range-control.js.map +1 -1
- package/dist/esm/transformations/blog-post.d.ts +5 -0
- package/dist/esm/transformations/blog-post.d.ts.map +1 -1
- package/dist/esm/transformations/blog-post.js +6 -2
- package/dist/esm/transformations/blog-post.js.map +1 -1
- package/dist/esm/transformations/index.d.ts +18 -2
- package/dist/esm/transformations/index.d.ts.map +1 -1
- package/dist/esm/transformations/index.js +27 -2
- package/dist/esm/transformations/index.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/count-fetchers.ts +10 -2
- package/src/data-source-fetchers.ts +144 -23
- package/src/fetchers/postgresql.ts +38 -9
- package/src/fetchers/raw-query.ts +125 -13
- package/src/fetchers/redshift.ts +3 -0
- package/src/fetchers/teleport.ts +29 -8
- package/src/fetchers/utils/external-read-guard.ts +289 -0
- package/src/fetchers/utils/table-access-guard.ts +469 -20
- package/src/index.ts +1 -1
- package/src/pagination-controls.ts +4 -1
- package/src/pagination-plugin.ts +1 -0
- package/src/range-control.ts +40 -8
- package/src/transformations/blog-post.ts +107 -4
- package/src/transformations/index.ts +44 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* tslint:disable:function-constructor */
|
|
2
2
|
import { generateDataSourceFetcherWithCore } from '../src/data-source-fetchers'
|
|
3
|
+
import { publicExposure } from './_helpers/exposure'
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* A board's "No status" column lists the rows whose status is empty. The GUI
|
|
@@ -33,9 +34,25 @@ const bootRoute = (type: 'teleport' | 'postgresql') => {
|
|
|
33
34
|
team_events: { columns: [{ name: 'id' }, { name: 'priority' }] },
|
|
34
35
|
},
|
|
35
36
|
}
|
|
36
|
-
: {
|
|
37
|
+
: {
|
|
38
|
+
host: 'h',
|
|
39
|
+
port: 5432,
|
|
40
|
+
user: 'u',
|
|
41
|
+
password: 'p',
|
|
42
|
+
database: 'd',
|
|
43
|
+
// The table's schema as the editor exports it: the only columns a
|
|
44
|
+
// request may name.
|
|
45
|
+
selectedTables: {
|
|
46
|
+
team_events: { columns: [{ name: 'id' }, { name: 'priority' }] },
|
|
47
|
+
},
|
|
48
|
+
},
|
|
37
49
|
}
|
|
38
|
-
const code = generateDataSourceFetcherWithCore(
|
|
50
|
+
const code = generateDataSourceFetcherWithCore(
|
|
51
|
+
dataSource as never,
|
|
52
|
+
'team_events',
|
|
53
|
+
false,
|
|
54
|
+
publicExposure(['team_events'])
|
|
55
|
+
)
|
|
39
56
|
.replace(
|
|
40
57
|
"import { Client, types as pgTypes } from 'pg'",
|
|
41
58
|
"const { Client, types: pgTypes } = require('pg')"
|
|
@@ -31,6 +31,9 @@ const FROM_BY_PAGE = '(ds_0_total === 0 ? 0 : (ds_0_page - 1) * 20 + 1).toLocale
|
|
|
31
31
|
const FROM_FIRST_ROW = '(ds_0_total === 0 ? 0 : 1).toLocaleString("en-US")'
|
|
32
32
|
const TO = 'Math.min(ds_0_page * 20, ds_0_total).toLocaleString("en-US")'
|
|
33
33
|
const TOTAL = 'ds_0_total.toLocaleString("en-US")'
|
|
34
|
+
const PAGE = 'ds_0_page.toLocaleString("en-US")'
|
|
35
|
+
const PAGES = '(ds_0_total === 0 ? 0 : Math.max(1, ds_0_maxPages)).toLocaleString("en-US")'
|
|
36
|
+
const PER_PAGE = '(20).toLocaleString("en-US")'
|
|
34
37
|
|
|
35
38
|
describe('pagination plugin — range control', () => {
|
|
36
39
|
it('fills the authored words with the page window in buttons mode', async () => {
|
|
@@ -102,6 +105,32 @@ describe('pagination plugin — range control', () => {
|
|
|
102
105
|
expect(flat).toContain('Math.min(ds_0_state.page * 20, ds_0_total).toLocaleString("en-US")')
|
|
103
106
|
})
|
|
104
107
|
|
|
108
|
+
it('reads the page, the page count and the page size off the mapper', async () => {
|
|
109
|
+
const flat = collapse(
|
|
110
|
+
await runPlugin(
|
|
111
|
+
{},
|
|
112
|
+
{ controls: ['range'], rangeTemplate: 'Page {page} of {pages} · {perPage} per page' }
|
|
113
|
+
)
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
// The page count is the counted `maxPages`: one page as long as there are
|
|
117
|
+
// rows, none when there are none — the same words the canvas reads.
|
|
118
|
+
expect(flat).toContain(
|
|
119
|
+
`${DRAWN} \`Page \${${PAGE}} of \${${PAGES}} · \${${PER_PAGE}} per page\``
|
|
120
|
+
)
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
it('reads the pages loaded so far as the page of an appending list', async () => {
|
|
124
|
+
const flat = collapse(
|
|
125
|
+
await runPlugin(
|
|
126
|
+
{ infiniteScroll: true, infiniteScrollLoadMore: true },
|
|
127
|
+
{ controls: ['range', 'load-more'], rangeTemplate: '{page} of {pages}' }
|
|
128
|
+
)
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
expect(flat).toContain(`${DRAWN} \`\${${PAGE}} of \${${PAGES}}\``)
|
|
132
|
+
})
|
|
133
|
+
|
|
105
134
|
it('reads a template the JSX printer escaped the braces of', async () => {
|
|
106
135
|
const flat = collapse(
|
|
107
136
|
await runPlugin(
|
|
@@ -4,6 +4,8 @@ import { generateDataSourceFetcher } from '../src/data-source-fetchers'
|
|
|
4
4
|
import { generateTeleportCountFetcher } from '../src/fetchers/teleport'
|
|
5
5
|
import { generateCSVFileFetcher } from '../src/fetchers/csv-file'
|
|
6
6
|
import { generateSearchRankHelperCode, generateSearchTermsCode } from '../src/search-relevance'
|
|
7
|
+
import { DataExposure } from '@teleporthq/teleport-shared'
|
|
8
|
+
import { publicRead } from './_helpers/exposure'
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* A list's search: the typed text is split into terms at white space, the
|
|
@@ -24,16 +26,38 @@ interface Query {
|
|
|
24
26
|
|
|
25
27
|
const SEARCHED = JSON.stringify(['title', 'excerpt', 'content'])
|
|
26
28
|
|
|
29
|
+
const ARTICLES_SCHEMA = {
|
|
30
|
+
articles: {
|
|
31
|
+
columns: [
|
|
32
|
+
{ name: 'id' },
|
|
33
|
+
{ name: 'title' },
|
|
34
|
+
{ name: 'excerpt' },
|
|
35
|
+
{ name: 'content' },
|
|
36
|
+
{ name: 'sort_order' },
|
|
37
|
+
{ name: 'status' },
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
}
|
|
41
|
+
|
|
27
42
|
const pgRoute = (type: 'teleport' | 'postgresql', withCount = false) => {
|
|
28
43
|
const config =
|
|
29
44
|
type === 'teleport'
|
|
30
45
|
? {
|
|
31
46
|
host: 'db',
|
|
32
47
|
database: 'site',
|
|
33
|
-
selectedTables:
|
|
48
|
+
selectedTables: ARTICLES_SCHEMA,
|
|
34
49
|
}
|
|
35
|
-
: {
|
|
36
|
-
|
|
50
|
+
: {
|
|
51
|
+
host: 'h',
|
|
52
|
+
port: 5432,
|
|
53
|
+
user: 'u',
|
|
54
|
+
password: 'p',
|
|
55
|
+
database: 'd',
|
|
56
|
+
selectedTables: ARTICLES_SCHEMA,
|
|
57
|
+
}
|
|
58
|
+
const route = generateDataSourceFetcher({ type, config } as never, 'articles', {
|
|
59
|
+
routeExposure: publicRead(),
|
|
60
|
+
})
|
|
37
61
|
return withCount && type === 'teleport'
|
|
38
62
|
? route + generateTeleportCountFetcher(config, 'articles')
|
|
39
63
|
: route
|
|
@@ -167,7 +191,9 @@ describe.each(['teleport', 'postgresql'] as const)('the %s list route', (type) =
|
|
|
167
191
|
queryColumns: JSON.stringify(['title']),
|
|
168
192
|
})
|
|
169
193
|
expect(main.sql).toMatch(
|
|
170
|
-
new RegExp(
|
|
194
|
+
new RegExp(
|
|
195
|
+
` ORDER BY \\(CASE WHEN .* THEN 3 .* ELSE 0 END\\) DESC, "id" ASC LIMIT ${DataExposure.BROWSER_READ_DEFAULT_LIMIT}$`
|
|
196
|
+
)
|
|
171
197
|
)
|
|
172
198
|
})
|
|
173
199
|
|
|
@@ -205,8 +231,18 @@ describe('the built-in database count route', () => {
|
|
|
205
231
|
|
|
206
232
|
describe('the MySQL list route', () => {
|
|
207
233
|
const route = generateDataSourceFetcher(
|
|
208
|
-
{
|
|
209
|
-
|
|
234
|
+
{
|
|
235
|
+
type: 'mysql',
|
|
236
|
+
config: {
|
|
237
|
+
host: 'h',
|
|
238
|
+
user: 'u',
|
|
239
|
+
password: 'p',
|
|
240
|
+
database: 'd',
|
|
241
|
+
selectedTables: ARTICLES_SCHEMA,
|
|
242
|
+
},
|
|
243
|
+
} as never,
|
|
244
|
+
'articles',
|
|
245
|
+
{ routeExposure: publicRead() }
|
|
210
246
|
)
|
|
211
247
|
|
|
212
248
|
it('binds the ranking terms after every WHERE parameter, as the ORDER BY follows the WHERE', async () => {
|
|
@@ -3,6 +3,14 @@ import type { UIDLAuthentication } from '@teleporthq/teleport-types'
|
|
|
3
3
|
import { TableAccess } from '@teleporthq/teleport-shared'
|
|
4
4
|
import { generateDataSourceFetcherWithCore } from '../src/data-source-fetchers'
|
|
5
5
|
import { buildProductTransformOptions } from '../src/transformations'
|
|
6
|
+
import { publicExposure } from './_helpers/exposure'
|
|
7
|
+
import {
|
|
8
|
+
isSecurityRuntimeSpecifier,
|
|
9
|
+
loadSecurityRuntime,
|
|
10
|
+
} from '../../teleport-plugin-next-workflows/__tests__/_helpers/load-security-runtime'
|
|
11
|
+
|
|
12
|
+
// The data routes compare the app secret with the shared runtime's safeEqual.
|
|
13
|
+
const securityRuntime = loadSecurityRuntime()
|
|
6
14
|
|
|
7
15
|
/**
|
|
8
16
|
* Every table a page binds gets a read route (`/api/teleport-<table>-<source>`
|
|
@@ -54,11 +62,28 @@ function bootTableRoute(
|
|
|
54
62
|
user: 'teleporthq.secrets.TELEPORT_DB_USER',
|
|
55
63
|
password: 'teleporthq.secrets.TELEPORT_DB_PASSWORD',
|
|
56
64
|
database: 'teleporthq.secrets.TELEPORT_DB_NAME',
|
|
57
|
-
|
|
65
|
+
// The table's schema as the editor exports it: the only columns a request may name.
|
|
66
|
+
selectedTables: {
|
|
67
|
+
[tableName]: {
|
|
68
|
+
columns: [
|
|
69
|
+
{ name: 'id', type: 'uuid' },
|
|
70
|
+
{ name: 'title' },
|
|
71
|
+
{ name: 'name' },
|
|
72
|
+
{ name: 'status' },
|
|
73
|
+
{ name: 'slug' },
|
|
74
|
+
{ name: 'author_email' },
|
|
75
|
+
{ name: 'created_at' },
|
|
76
|
+
{ name: 'price' },
|
|
77
|
+
{ name: 'code' },
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
},
|
|
58
81
|
},
|
|
59
82
|
}
|
|
83
|
+
// Even a table a public page binds stays behind the protected-table net.
|
|
60
84
|
const esm = generateDataSourceFetcherWithCore(dataSource as never, tableName, false, {
|
|
61
85
|
trustedReaderRoles,
|
|
86
|
+
...publicExposure([tableName]),
|
|
62
87
|
})
|
|
63
88
|
// The route is an ES module; run it as a script with the same bindings.
|
|
64
89
|
const code = esm
|
|
@@ -102,6 +127,9 @@ function bootTableRoute(
|
|
|
102
127
|
if (name === 'next-auth/jwt') {
|
|
103
128
|
return { getToken: async () => (session ? { sub: 'u1', role: session.role } : null) }
|
|
104
129
|
}
|
|
130
|
+
if (isSecurityRuntimeSpecifier(name)) {
|
|
131
|
+
return securityRuntime
|
|
132
|
+
}
|
|
105
133
|
throw new Error('unexpected require: ' + name)
|
|
106
134
|
}
|
|
107
135
|
const moduleObj: { exports: any } = { exports: {} }
|
|
@@ -210,6 +238,27 @@ describe('per-table read routes — money and customer tables are read only by t
|
|
|
210
238
|
await expect(vouchers.serverCall('fetchCount')).resolves.toBe(0)
|
|
211
239
|
})
|
|
212
240
|
|
|
241
|
+
it('A3: refuses the retired reset-token table to every caller, the app secret and its own server calls too', async () => {
|
|
242
|
+
const resets = bootTableRoute('password_reset_tokens', ADMIN_ROLES)
|
|
243
|
+
for (const call of [
|
|
244
|
+
{ handler: 'handler' as const, headers: internal },
|
|
245
|
+
{ handler: 'getCount' as const, headers: internal },
|
|
246
|
+
{ handler: 'handler' as const, session: { role: 'admin' } },
|
|
247
|
+
]) {
|
|
248
|
+
const answer = await resets(call)
|
|
249
|
+
expect(answer.status).toBe(403)
|
|
250
|
+
expect(answer.queries).toEqual([])
|
|
251
|
+
}
|
|
252
|
+
// A raw statement naming it, through any other table's route.
|
|
253
|
+
const viaRaw = await products({
|
|
254
|
+
handler: 'handler',
|
|
255
|
+
headers: internal,
|
|
256
|
+
query: { rawQuery: 'SELECT * FROM "public"."Password_Reset_Tokens"' },
|
|
257
|
+
})
|
|
258
|
+
expect(viaRaw.status).toBe(403)
|
|
259
|
+
expect(viaRaw.queries).toEqual([])
|
|
260
|
+
})
|
|
261
|
+
|
|
213
262
|
it('refuses a browser every raw statement, whatever it names, once the app has a secret', async () => {
|
|
214
263
|
// Generated pages never send one: their raw queries run in getStaticProps
|
|
215
264
|
// (the module's own fetchData) or in server segments. So no statement scan
|
|
@@ -244,13 +293,14 @@ describe('per-table read routes — money and customer tables are read only by t
|
|
|
244
293
|
expect(result.status).toBe(400)
|
|
245
294
|
expect(result.queries).toEqual([])
|
|
246
295
|
}
|
|
247
|
-
// A row count is a number or nothing:
|
|
296
|
+
// A row count is a whole number or nothing: anything else is refused
|
|
297
|
+
// before the database is touched, so the sub-select never reaches SQL.
|
|
248
298
|
const limited = await products({
|
|
249
299
|
handler: 'handler',
|
|
250
300
|
query: { limit: '(SELECT 1 FROM teleport_vouchers)' },
|
|
251
301
|
})
|
|
252
|
-
expect(limited.status).toBe(
|
|
253
|
-
expect(limited.queries
|
|
302
|
+
expect(limited.status).toBe(400)
|
|
303
|
+
expect(limited.queries).toEqual([])
|
|
254
304
|
const count = await products({
|
|
255
305
|
handler: 'getCount',
|
|
256
306
|
query: { filters: JSON.stringify([{ source: smuggled, operand: '=', destination: 1 }]) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"count-fetchers.d.ts","sourceRoot":"","sources":["../../src/count-fetchers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,uBAAuB,EACvB,4BAA4B,GAC7B,CAAA;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"count-fetchers.d.ts","sourceRoot":"","sources":["../../src/count-fetchers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAElE,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,uBAAuB,EACvB,4BAA4B,GAC7B,CAAA;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA6F1F"}
|
|
@@ -43,7 +43,7 @@ function generateCountFetcher(dataSource, tableName) {
|
|
|
43
43
|
case 'csv-file':
|
|
44
44
|
return (0, csv_file_1.generateCSVCountFetcher)(config);
|
|
45
45
|
default:
|
|
46
|
-
return "\nasync function getCount(req, res) {\n try {\n // `collectionPath` has to travel with the rest: this counts by re-running\n // the fetch handler and measuring its result, and without the path that\n // handler gets the wrapper object rather than the records, which is not an\n // array \u2014 so the count below would report 0 for a list that clearly has rows.\n const { query, queryColumns, filters, collectionPath } = req.query\n const fakeReq = {
|
|
46
|
+
return "\nasync function getCount(req, res) {\n try {\n // `collectionPath` has to travel with the rest: this counts by re-running\n // the fetch handler and measuring its result, and without the path that\n // handler gets the wrapper object rather than the records, which is not an\n // array \u2014 so the count below would report 0 for a list that clearly has rows.\n const { query, queryColumns, filters, collectionPath } = req.query\n // The count route already let this request through (see\n // external-read-guard.ts); counting re-reads every matching row as the\n // route's own server-side call, never capped to a browser's window.\n const fakeReq = {\n query: { query, queryColumns, filters, collectionPath },\n method: 'GET',\n headers: req.headers || {},\n __tqServerCall: true,\n }\n let result = null\n let statusCode = 200\n \n const fakeRes = {\n status: (code) => {\n statusCode = code\n return fakeRes\n },\n json: (data) => {\n result = data\n return fakeRes\n },\n }\n \n await handler(fakeReq, fakeRes)\n \n if (statusCode !== 200 || !result || !result.success) {\n return res.status(500).json({\n success: false,\n error: 'Failed to get data for counting',\n timestamp: Date.now()\n })\n }\n \n const count = Array.isArray(result.data) ? result.data.length : 0\n \n return res.status(200).json({\n success: true,\n count: count,\n timestamp: Date.now()\n })\n } catch (error) {\n console.error('Error getting count:', error)\n return res.status(500).json({\n success: false,\n error: 'Failed to get count',\n timestamp: Date.now()\n })\n }\n}\n";
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
exports.generateCountFetcher = generateCountFetcher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"count-fetchers.js","sourceRoot":"","sources":["../../src/count-fetchers.ts"],"names":[],"mappings":";;;AACA,+DAA2E;AAC3E,oDAAsE;AAUpE,+GAVO,2CAA8B,OAUP;AAThC,0CAA4D;AAU1D,0GAVO,iCAAyB,OAUP;AAT3B,8CAAgE;AAU9D,4GAVO,qCAA2B,OAUP;AAT7B,8CAAgE;AAU9D,4GAVO,qCAA2B,OAUP;AAT7B,gDAAkE;AAUhE,6GAVO,uCAA4B,OAUP;AAT9B,oDAAsE;AAUpE,+GAVO,2CAA8B,OAUP;AAThC,gDAA6D;AAU3D,wGAVO,kCAAuB,OAUP;AATzB,gDAAkE;AAUhE,6GAVO,uCAA4B,OAUP;AAG9B,SAAgB,oBAAoB,CAAC,UAA0B,EAAE,SAAiB;IACxE,IAAA,IAAI,GAAa,UAAU,KAAvB,EAAE,MAAM,GAAK,UAAU,OAAf,CAAe;IAEnC,QAAQ,IAAI,EAAE;QACZ,KAAK,UAAU;YACb,OAAO,IAAA,uCAA4B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAExD,KAAK,YAAY,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,IAAA,2CAA8B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAE1D,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAA,iCAAyB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAErD,KAAK,SAAS;YACZ,OAAO,IAAA,qCAA2B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAEvD,KAAK,SAAS;YACZ,OAAO,IAAA,qCAA2B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAEvD,KAAK,UAAU;YACb,IAAI,IAAA,yDAAkC,EAAC,MAAM,CAAC,EAAE;gBAC9C,OAAO,IAAA,2CAA8B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;aACzD;YACD,OAAO,IAAA,uCAA4B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAExD,KAAK,YAAY;YACf,OAAO,IAAA,2CAA8B,EAAC,MAAM,CAAC,CAAA;QAE/C,KAAK,UAAU;YACb,OAAO,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAA;QAExC;YACE,OAAO,
|
|
1
|
+
{"version":3,"file":"count-fetchers.js","sourceRoot":"","sources":["../../src/count-fetchers.ts"],"names":[],"mappings":";;;AACA,+DAA2E;AAC3E,oDAAsE;AAUpE,+GAVO,2CAA8B,OAUP;AAThC,0CAA4D;AAU1D,0GAVO,iCAAyB,OAUP;AAT3B,8CAAgE;AAU9D,4GAVO,qCAA2B,OAUP;AAT7B,8CAAgE;AAU9D,4GAVO,qCAA2B,OAUP;AAT7B,gDAAkE;AAUhE,6GAVO,uCAA4B,OAUP;AAT9B,oDAAsE;AAUpE,+GAVO,2CAA8B,OAUP;AAThC,gDAA6D;AAU3D,wGAVO,kCAAuB,OAUP;AATzB,gDAAkE;AAUhE,6GAVO,uCAA4B,OAUP;AAG9B,SAAgB,oBAAoB,CAAC,UAA0B,EAAE,SAAiB;IACxE,IAAA,IAAI,GAAa,UAAU,KAAvB,EAAE,MAAM,GAAK,UAAU,OAAf,CAAe;IAEnC,QAAQ,IAAI,EAAE;QACZ,KAAK,UAAU;YACb,OAAO,IAAA,uCAA4B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAExD,KAAK,YAAY,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,IAAA,2CAA8B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAE1D,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAA,iCAAyB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAErD,KAAK,SAAS;YACZ,OAAO,IAAA,qCAA2B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAEvD,KAAK,SAAS;YACZ,OAAO,IAAA,qCAA2B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAEvD,KAAK,UAAU;YACb,IAAI,IAAA,yDAAkC,EAAC,MAAM,CAAC,EAAE;gBAC9C,OAAO,IAAA,2CAA8B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;aACzD;YACD,OAAO,IAAA,uCAA4B,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QAExD,KAAK,YAAY;YACf,OAAO,IAAA,2CAA8B,EAAC,MAAM,CAAC,CAAA;QAE/C,KAAK,UAAU;YACb,OAAO,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAA;QAExC;YACE,OAAO,kvDAyDZ,CAAA;KACE;AACH,CAAC;AA7FD,oDA6FC"}
|
|
@@ -9,6 +9,10 @@ interface DataSourceFetcherDependencies {
|
|
|
9
9
|
}
|
|
10
10
|
export declare const isSupabaseConnectionStringFallback: (config: Record<string, unknown>) => boolean;
|
|
11
11
|
export declare const getDataSourceDependencies: (type: DataSourceType, config?: Record<string, unknown>) => DataSourceFetcherDependencies;
|
|
12
|
+
/**
|
|
13
|
+
* The read route of `tableName` over `dataSource`: its driver's fetcher, behind
|
|
14
|
+
* the read guard (see `fetchers/utils/table-access-guard.ts`).
|
|
15
|
+
*/
|
|
12
16
|
export declare function generateDataSourceFetcher(dataSource: UIDLDataSource, tableName: string, transformOptions?: EntityTransformOptions): string;
|
|
13
17
|
/**
|
|
14
18
|
* Generates a fetcher with both a core fetchData function (for server-side use in getStaticProps)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-source-fetchers.d.ts","sourceRoot":"","sources":["../../src/data-source-fetchers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EA6BL,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"data-source-fetchers.d.ts","sourceRoot":"","sources":["../../src/data-source-fetchers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EA6BL,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAE/D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AAkBjE,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,CAAA;AAE/D,UAAU,6BAA6B;IACrC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,eAAO,MAAM,kCAAkC,WAAY,OAAO,MAAM,EAAE,OAAO,CAAC,KAAG,OAEpF,CAAA;AAED,eAAO,MAAM,yBAAyB,SAC9B,cAAc,WACX,OAAO,MAAM,EAAE,OAAO,CAAC,KAC/B,6BA4BF,CAAA;AAaD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,MAAM,EACjB,gBAAgB,GAAE,sBAA2B,GAC5C,MAAM,CAiBR;AAyMD;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,OAAe,EAC3B,gBAAgB,GAAE,sBAA2B,EAC7C,YAAY,CAAC,EAAE,4BAA4B,GAC1C,MAAM,CAoPR"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
14
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
15
|
if (ar || !(i in from)) {
|
|
@@ -17,6 +28,8 @@ var validation_1 = require("./validation");
|
|
|
17
28
|
var count_fetchers_1 = require("./count-fetchers");
|
|
18
29
|
var teleport_shared_1 = require("@teleporthq/teleport-shared");
|
|
19
30
|
var browser_row_policy_1 = require("./fetchers/utils/browser-row-policy");
|
|
31
|
+
var external_read_guard_1 = require("./fetchers/utils/external-read-guard");
|
|
32
|
+
var table_access_guard_1 = require("./fetchers/utils/table-access-guard");
|
|
20
33
|
/** `public."users"` → `users`: the table a spelling names. */
|
|
21
34
|
var bareTableName = function (tableName) {
|
|
22
35
|
return (String(tableName || '')
|
|
@@ -57,7 +70,48 @@ var getDataSourceDependencies = function (type, config) {
|
|
|
57
70
|
return dependencyMap[type];
|
|
58
71
|
};
|
|
59
72
|
exports.getDataSourceDependencies = getDataSourceDependencies;
|
|
73
|
+
/**
|
|
74
|
+
* Whether the driver's read route carries the table-access guard inline (the
|
|
75
|
+
* TeleportHQ and Postgres-family fetchers); every other driver is wrapped by
|
|
76
|
+
* `guardExternalDriverModule`.
|
|
77
|
+
*/
|
|
78
|
+
var hasInlineReadGuard = function (dataSource) {
|
|
79
|
+
return dataSource.type === 'teleport' ||
|
|
80
|
+
dataSource.type === 'postgresql' ||
|
|
81
|
+
dataSource.type === 'cockroachdb' ||
|
|
82
|
+
(dataSource.type === 'supabase' && (0, exports.isSupabaseConnectionStringFallback)(dataSource.config));
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* The read route of `tableName` over `dataSource`: its driver's fetcher, behind
|
|
86
|
+
* the read guard (see `fetchers/utils/table-access-guard.ts`).
|
|
87
|
+
*/
|
|
60
88
|
function generateDataSourceFetcher(dataSource, tableName, transformOptions) {
|
|
89
|
+
if (transformOptions === void 0) { transformOptions = {}; }
|
|
90
|
+
var routeExposure = routeExposureOf(dataSource, tableName, transformOptions);
|
|
91
|
+
var driverCode = generateDriverFetcher(dataSource, tableName, __assign(__assign({}, transformOptions), { routeExposure: routeExposure }));
|
|
92
|
+
if (hasInlineReadGuard(dataSource)) {
|
|
93
|
+
return driverCode;
|
|
94
|
+
}
|
|
95
|
+
return (0, external_read_guard_1.guardExternalDriverModule)(driverCode, {
|
|
96
|
+
tableName: tableName,
|
|
97
|
+
dataSourceType: dataSource.type,
|
|
98
|
+
exposure: routeExposure,
|
|
99
|
+
trustedReaderRoles: transformOptions.trustedReaderRoles || [],
|
|
100
|
+
schema: (0, table_access_guard_1.schemaOf)(dataSource.config, tableName),
|
|
101
|
+
reader: transformOptions,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
exports.generateDataSourceFetcher = generateDataSourceFetcher;
|
|
105
|
+
/** The exposure of the route of `tableName` over `dataSource` (by source id and table). */
|
|
106
|
+
var routeExposureOf = function (dataSource, tableName, transformOptions) {
|
|
107
|
+
return transformOptions.routeExposure ||
|
|
108
|
+
teleport_shared_1.DataExposure.readExposureFor(transformOptions.dataExposure, {
|
|
109
|
+
tableName: tableName,
|
|
110
|
+
dataSourceId: dataSource && dataSource.id,
|
|
111
|
+
dataSourceType: dataSource && dataSource.type,
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
function generateDriverFetcher(dataSource, tableName, transformOptions) {
|
|
61
115
|
if (transformOptions === void 0) { transformOptions = {}; }
|
|
62
116
|
if (!dataSource || typeof dataSource !== 'object') {
|
|
63
117
|
throw new Error('Invalid data source: data source must be a valid object');
|
|
@@ -77,7 +131,7 @@ function generateDataSourceFetcher(dataSource, tableName, transformOptions) {
|
|
|
77
131
|
if (!validation.isValid) {
|
|
78
132
|
throw new Error("PostgreSQL/CockroachDB config validation failed: ".concat(validation.error));
|
|
79
133
|
}
|
|
80
|
-
return (0, fetchers_1.generatePostgreSQLFetcher)(config, tableName, transformOptions.trustedReaderRoles);
|
|
134
|
+
return (0, fetchers_1.generatePostgreSQLFetcher)(config, tableName, transformOptions.trustedReaderRoles, transformOptions.dataExposure, transformOptions.routeExposure, transformOptions);
|
|
81
135
|
}
|
|
82
136
|
case 'mysql':
|
|
83
137
|
case 'tidb': {
|
|
@@ -143,7 +197,7 @@ function generateDataSourceFetcher(dataSource, tableName, transformOptions) {
|
|
|
143
197
|
if (!pgValidation.isValid) {
|
|
144
198
|
throw new Error("Supabase (PostgreSQL fallback) config validation failed: ".concat(pgValidation.error));
|
|
145
199
|
}
|
|
146
|
-
return (0, fetchers_1.generatePostgreSQLFetcher)(config, tableName, transformOptions.trustedReaderRoles);
|
|
200
|
+
return (0, fetchers_1.generatePostgreSQLFetcher)(config, tableName, transformOptions.trustedReaderRoles, transformOptions.dataExposure, transformOptions.routeExposure, transformOptions);
|
|
147
201
|
}
|
|
148
202
|
var validation = (0, fetchers_1.validateSupabaseConfig)(config);
|
|
149
203
|
if (!validation.isValid) {
|
|
@@ -203,7 +257,6 @@ function generateDataSourceFetcher(dataSource, tableName, transformOptions) {
|
|
|
203
257
|
throw new Error("Failed to generate fetcher for ".concat(type, ": ").concat(errorMessage));
|
|
204
258
|
}
|
|
205
259
|
}
|
|
206
|
-
exports.generateDataSourceFetcher = generateDataSourceFetcher;
|
|
207
260
|
/**
|
|
208
261
|
* Generates a fetcher with both a core fetchData function (for server-side use in getStaticProps)
|
|
209
262
|
* and an API handler (for client-side use)
|
|
@@ -211,6 +264,12 @@ exports.generateDataSourceFetcher = generateDataSourceFetcher;
|
|
|
211
264
|
function generateDataSourceFetcherWithCore(dataSource, tableName, isApiRoute, transformOptions, cacheOptions) {
|
|
212
265
|
if (isApiRoute === void 0) { isApiRoute = false; }
|
|
213
266
|
if (transformOptions === void 0) { transformOptions = {}; }
|
|
267
|
+
// A row-owned page's read answers each session its own rows: nothing about
|
|
268
|
+
// it may be cached for another (see DataReadExposure.ownerRules).
|
|
269
|
+
var ownedExposure = routeExposureOf(dataSource, tableName, transformOptions);
|
|
270
|
+
var routeCacheOptions = ownedExposure.public || ownedExposure.anySession || !(ownedExposure.ownerRules || []).length
|
|
271
|
+
? cacheOptions
|
|
272
|
+
: undefined;
|
|
214
273
|
var apiHandler = generateDataSourceFetcher(dataSource, tableName, transformOptions);
|
|
215
274
|
// Extract the handler function body from the API route
|
|
216
275
|
// The API route is structured as: export default async function handler(req, res) { ... }
|
|
@@ -221,8 +280,12 @@ function generateDataSourceFetcherWithCore(dataSource, tableName, isApiRoute, tr
|
|
|
221
280
|
var importRegex = /^import\s+.*?$/gm;
|
|
222
281
|
var imports = handlerCode.match(importRegex) || [];
|
|
223
282
|
var handlerWithoutImports = handlerCode.replace(importRegex, '').trim();
|
|
224
|
-
// Generate count fetcher code and extract its imports
|
|
225
|
-
|
|
283
|
+
// Generate count fetcher code and extract its imports. An external driver's
|
|
284
|
+
// count runs behind the same guard as its rows.
|
|
285
|
+
var driverCountCode = (0, count_fetchers_1.generateCountFetcher)(dataSource, tableName);
|
|
286
|
+
var countFetcherCode = hasInlineReadGuard(dataSource)
|
|
287
|
+
? driverCountCode
|
|
288
|
+
: (0, external_read_guard_1.guardExternalDriverCount)(driverCountCode);
|
|
226
289
|
var countImports = countFetcherCode.match(importRegex) || [];
|
|
227
290
|
var countFetcherWithoutImports = countFetcherCode.replace(importRegex, '').trim();
|
|
228
291
|
// Combine and deduplicate imports
|
|
@@ -236,41 +299,55 @@ function generateDataSourceFetcherWithCore(dataSource, tableName, isApiRoute, tr
|
|
|
236
299
|
// The import depth differs by destination: this module is written to
|
|
237
300
|
// `utils/data-sources/` normally, but the `isApiRoute` variant is inlined
|
|
238
301
|
// straight into `pages/api/`.
|
|
239
|
-
var cachePreamble =
|
|
302
|
+
var cachePreamble = routeCacheOptions
|
|
240
303
|
? "import { tqWithCache } from '".concat(isApiRoute ? '../../' : '../', "tq-cache/server'")
|
|
241
304
|
: '';
|
|
242
305
|
// A module carrying the browser row policy (the Postgres-family routes) keys
|
|
243
306
|
// its cache by who is reading; see `__tqCacheByView` below.
|
|
244
307
|
var splitsCacheByView = handlerCode.indexOf('function __brpSharesPublicView(') !== -1;
|
|
245
|
-
|
|
308
|
+
// Only a table every visitor may read can sit in a shared (CDN) cache, and a
|
|
309
|
+
// table only some sessions may read is checked BEFORE the cache: a cached
|
|
310
|
+
// answer never reaches a visitor the route itself would refuse.
|
|
311
|
+
var routeExposure = routeExposureOf(dataSource, tableName, transformOptions);
|
|
312
|
+
var routeIsPublic = routeExposure.public;
|
|
313
|
+
var sharedCacheSeconds = function (seconds) {
|
|
314
|
+
return routeIsPublic ? seconds || 0 : 0;
|
|
315
|
+
};
|
|
316
|
+
var cacheWiring = routeCacheOptions
|
|
246
317
|
? "\nconst __tqDataCache = ".concat(JSON.stringify({
|
|
247
|
-
scope:
|
|
248
|
-
ttl:
|
|
249
|
-
sMaxAge:
|
|
250
|
-
swr:
|
|
318
|
+
scope: routeCacheOptions.scope,
|
|
319
|
+
ttl: routeCacheOptions.ttlSeconds,
|
|
320
|
+
sMaxAge: sharedCacheSeconds(routeCacheOptions.sMaxAge),
|
|
321
|
+
swr: sharedCacheSeconds(routeCacheOptions.staleWhileRevalidate),
|
|
251
322
|
}), "\nconst __tqCountCache = ").concat(JSON.stringify({
|
|
252
|
-
scope: teleport_shared_1.DataCache.countScopeFor(
|
|
323
|
+
scope: teleport_shared_1.DataCache.countScopeFor(routeCacheOptions.scope),
|
|
253
324
|
// Its OWN keyspace, but the DATA scope's version row. A write bumps one
|
|
254
325
|
// row; if the count kept a separate version nothing would ever bump it,
|
|
255
326
|
// and the total would stay stale after every create and delete — the
|
|
256
327
|
// grid showing one more row than the pager counts.
|
|
257
|
-
versionScope:
|
|
258
|
-
ttl:
|
|
259
|
-
sMaxAge:
|
|
260
|
-
swr:
|
|
328
|
+
versionScope: routeCacheOptions.scope,
|
|
329
|
+
ttl: routeCacheOptions.ttlSeconds,
|
|
330
|
+
sMaxAge: sharedCacheSeconds(routeCacheOptions.sMaxAge),
|
|
331
|
+
swr: sharedCacheSeconds(routeCacheOptions.staleWhileRevalidate),
|
|
261
332
|
}), "\n\n").concat(splitsCacheByView
|
|
262
|
-
? "// The store's own server code and its administrators may be served rows a\n// visitor is not (see __brpSharesPublicView), so they read and fill a cache of\n// their own \u2014 one never marked for a shared (CDN) cache either.\nconst __tqViewDependent = ".concat(JSON.stringify((0, browser_row_policy_1.isViewDependentTable)(tableName, __spreadArray(__spreadArray([], teleport_shared_1.TableAccess.PROTECTED_TABLES, true), Object.keys(teleport_shared_1.TableAccess.PUBLIC_FEED_TABLES), true))), "\n// The members' public profiles a page reads (see __BRP_PUBLIC_PROFILE) are never\n// a visitor's answer \u2014 a browser is served no row of the table \u2014 so they are\n// read fresh, never kept where a browser's request could be answered from.\nconst __tqProfileTable = ").concat(JSON.stringify(teleport_shared_1.TableAccess.AUTH_CREDENTIAL_TABLES.indexOf(bareTableName(tableName)) !== -1), "\nfunction __tqCacheByView(fn, opts) {\n const publicView = tqWithCache(fn, opts)\n const trustedView = tqWithCache(fn, Object.assign({}, opts, {\n scope: opts.scope + ':trusted',\n versionScope: opts.versionScope || opts.scope,\n sMaxAge: 0,\n swr: 0,\n }))\n return async function (req, res) {\n if (__tqProfileTable && __taIsVisitorView(req)) return fn(req, res)\n return (await __brpSharesPublicView(req, __tqViewDependent)) ? publicView(req, res) : trustedView(req, res)\n }\n}\n
|
|
333
|
+
? "// The store's own server code and its administrators may be served rows a\n// visitor is not (see __brpSharesPublicView), so they read and fill a cache of\n// their own \u2014 one never marked for a shared (CDN) cache either.\nconst __tqViewDependent = ".concat(JSON.stringify((0, browser_row_policy_1.isViewDependentTable)(tableName, __spreadArray(__spreadArray([], teleport_shared_1.TableAccess.PROTECTED_TABLES, true), Object.keys(teleport_shared_1.TableAccess.PUBLIC_FEED_TABLES), true))), "\n// The members' public profiles a page reads (see __BRP_PUBLIC_PROFILE) are never\n// a visitor's answer \u2014 a browser is served no row of the table \u2014 so they are\n// read fresh, never kept where a browser's request could be answered from.\nconst __tqProfileTable = ").concat(JSON.stringify(teleport_shared_1.TableAccess.AUTH_CREDENTIAL_TABLES.indexOf(bareTableName(tableName)) !== -1), "\nfunction __tqCacheByView(fn, opts) {\n const publicView = tqWithCache(fn, opts)\n const trustedView = tqWithCache(fn, Object.assign({}, opts, {\n scope: opts.scope + ':trusted',\n versionScope: opts.versionScope || opts.scope,\n sMaxAge: 0,\n swr: 0,\n }))\n // The app's own server code reads whole tables; a browser's read is capped\n // (__taReadWindow). Neither is ever served the other's answer.\n const serverView = tqWithCache(fn, Object.assign({}, opts, {\n scope: opts.scope + ':server',\n versionScope: opts.versionScope || opts.scope,\n sMaxAge: 0,\n swr: 0,\n }))\n return async function (req, res) {\n if (__taIsInternalRequest(req)) return serverView(req, res)\n if (__tqProfileTable && __taIsVisitorView(req)) return fn(req, res)\n return (await __brpSharesPublicView(req, __tqViewDependent)) ? publicView(req, res) : trustedView(req, res)\n }\n}\n").concat(routeIsPublic
|
|
334
|
+
? ''
|
|
335
|
+
: "\n// Readable only by some sessions (see __TA_ROUTE_EXPOSURE): the session is\n// checked before any cached answer is handed out.\nfunction __tqExposureFirst(fn) {\n return async function (req, res) {\n const __denied = await __taGuardExposure(req)\n if (__denied) {\n return res.status(__denied.status).json({ success: false, error: __denied.message, timestamp: Date.now() })\n }\n return fn(req, res)\n }\n}\n", "\nconst cachedHandler = ").concat(routeIsPublic
|
|
336
|
+
? '__tqCacheByView(handler, __tqDataCache)'
|
|
337
|
+
: '__tqExposureFirst(__tqCacheByView(handler, __tqDataCache))', "\nconst cachedGetCount = ").concat(routeIsPublic
|
|
338
|
+
? '__tqCacheByView(getCount, __tqCountCache)'
|
|
339
|
+
: '__tqExposureFirst(__tqCacheByView(getCount, __tqCountCache))')
|
|
263
340
|
: "const cachedHandler = tqWithCache(handler, __tqDataCache)\nconst cachedGetCount = tqWithCache(getCount, __tqCountCache)", "\n")
|
|
264
341
|
: '';
|
|
265
|
-
var handlerExport =
|
|
266
|
-
var countExport =
|
|
342
|
+
var handlerExport = routeCacheOptions ? 'cachedHandler' : 'handler';
|
|
343
|
+
var countExport = routeCacheOptions ? 'cachedGetCount' : 'getCount';
|
|
267
344
|
// For API routes, export just the handler function
|
|
268
345
|
// For utils files, export the full object with all functions
|
|
269
346
|
//
|
|
270
347
|
// The uncached branch is spelled out verbatim rather than interpolated, so an
|
|
271
348
|
// uncached project keeps generating byte-identical output — `handler as
|
|
272
349
|
// handler` would be harmless at runtime and still a diff in every snapshot.
|
|
273
|
-
var exports = !
|
|
350
|
+
var exports = !routeCacheOptions
|
|
274
351
|
? isApiRoute
|
|
275
352
|
? 'export default handler'
|
|
276
353
|
: "export { fetchData, fetchCount, handler, getCount }\nexport default { fetchData, fetchCount, handler, getCount }"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-source-fetchers.js","sourceRoot":"","sources":["../../src/data-source-fetchers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-source-fetchers.js","sourceRoot":"","sources":["../../src/data-source-fetchers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import type { DataReadExposure, ProjectDataExposure } from '@teleporthq/teleport-types';
|
|
2
|
+
import { SessionReaderPlacement } from './utils/table-access-guard';
|
|
3
|
+
export declare const generatePostgreSQLFetcher: (config: Record<string, unknown>, tableName: string, trustedReaderRoles?: ReadonlyArray<string>, dataExposure?: ProjectDataExposure, routeExposure?: DataReadExposure, reader?: SessionReaderPlacement) => string;
|
|
2
4
|
export declare const generatePostgreSQLCountFetcher: (config: Record<string, unknown>, tableName: string) => string;
|
|
3
5
|
//# sourceMappingURL=postgresql.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql.d.ts","sourceRoot":"","sources":["../../../src/fetchers/postgresql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postgresql.d.ts","sourceRoot":"","sources":["../../../src/fetchers/postgresql.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEvF,OAAO,EAGL,sBAAsB,EAEvB,MAAM,4BAA4B,CAAA;AAmBnC,eAAO,MAAM,yBAAyB,WAC5B,OAAO,MAAM,EAAE,OAAO,CAAC,aACpB,MAAM,uBACG,cAAc,MAAM,CAAC,iBAE1B,mBAAmB,kBAElB,gBAAgB,WAExB,sBAAsB,KAC7B,MA6TF,CAAA;AAED,eAAO,MAAM,8BAA8B,WACjC,OAAO,MAAM,EAAE,OAAO,CAAC,aACpB,MAAM,KAChB,MA+FF,CAAA"}
|