1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
var okcms = require('..');
var isProduction = process.env.OK_PRODUCTION === 'true'
var port = process.env.PORT || 1337;
var path = require('path')
var app = okcms.createApp({
root: 'public',
debug: !isProduction,
production: isProduction,
admin: {
theme: 'okadmin',
// dashboard: {
// resources: {
// card: {
// groupBy: 'stack',
// descending: true
// }
// }
// },
},
schemas: {
page: {
id: {type: 'string'},
title: {type: 'string'},
body: {type: 'text'},
links: {type: 'link-list'},
},
bread: {
type: {type: 'string', id: true},
title: {type: 'string'},
description: {type: 'text'},
color: {type: 'enum', options: ["red","blue","green"]},
video: {type: 'video'},
images: {type: 'gallery'}
},
test: {
id: {type: 'string', hidden: true},
title: {type: 'string'},
flagged: {type: 'flag'},
media: {type: 'media'},
},
flour: {
id: {type: 'string', hidden: true},
title: {type: 'string'},
image: {type: 'image'},
images: {type: 'triple-captioned-image-list'},
},
},
resources: [
{ type: 'page', static: {id: 'about'}},
{ type: 'page', static: {id: 'contact'}},
{ type: 'bread' },
{ type: 'test' },
{ type: 'flour' },
],
services: {
s3: {
key: process.env.S3_KEY,
secret: process.env.S3_SECRET,
bucket: process.env.S3_BUCKET,
dirname: "okcms-example",
image: { allowed: true, preserveFilename: false, maxbytes: 2*1024*1024 },
video: { allowed: true, preserveFilename: true, maxbytes: 200*1024*1024 },
audio: { allowed: true, preserveFilename: true, maxbytes: 100*1024*1024 },
},
webhook: {
active: false,
secret: 'test',
command: '/path/to/build.sh',
},
example: {
lib: require("./lib/okexample"),
stuff: "things",
},
dumpfm: {
lib: require("./lib/okdumpfm"),
},
push: {
lib: require("./lib/okpush"),
mongodbUrl: "mongodb://localhost/okpush_example",
apn: {
connection: {
gateway: "gateway.sandbox.push.apple.com",
cert: "/path/to/cert.pem",
key: "/path/to/key.pem"
},
feedback: {
address: "feedback.sandbox.push.apple.com",
cert: "/path/to/cert.pem",
key: "/path/to/key.pem",
interval: 43200,
batchFeedback: true
}
},
notifications: {
note.expiry = Math.floor(Date.now() / 1000) + 3600; // Expires 1 hour from now.
note.badge = 3;
note.sound = "ping.aiff";
note.alert = "\uD83D\uDCE7 \u2709 You have a new message";
note.payload = {'messageFrom': 'John Appleseed'};
note.topic = "<your-app-bundle-id>";
}
},
},
views: {
'/': {
data: [
{type: 'bread', query: '*'},
{type: 'page', query: '*'}
]
},
'/about': {
data: {type: 'page', query: 'about'}
},
'/contact': {
data: {type: 'page', query: 'contact'}
},
'/:id': {
data: {type: 'bread', query: ':id'}
}
}
}).listen(port)
console.log('Server listening at port %d...', port);
|