web_plsql 0.3.2 → 0.5.0

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.
Files changed (44) hide show
  1. package/.editorconfig +8 -8
  2. package/.eslintignore +3 -3
  3. package/.eslintrc.js +347 -273
  4. package/CHANGELOG.md +127 -106
  5. package/LICENSE +21 -21
  6. package/README.md +165 -164
  7. package/examples/apex.js +70 -70
  8. package/examples/credentials.js +22 -22
  9. package/examples/oracledb_example.js +30 -30
  10. package/examples/sample.js +101 -84
  11. package/examples/sql/doc_table.sql +13 -13
  12. package/examples/sql/install.sql +31 -31
  13. package/examples/sql/sample.pkb +223 -223
  14. package/examples/sql/sample.pks +24 -24
  15. package/examples/sql/uninstall.sql +5 -5
  16. package/examples/static/sample.css +25 -25
  17. package/jest.config.js +204 -0
  18. package/package.json +85 -109
  19. package/src/cgi.ts +95 -95
  20. package/src/config.ts +97 -97
  21. package/src/errorPage.ts +286 -286
  22. package/src/fileUpload.ts +126 -132
  23. package/src/index.ts +65 -66
  24. package/src/page.ts +275 -277
  25. package/src/procedure.ts +360 -359
  26. package/src/procedureError.ts +27 -27
  27. package/src/request.ts +139 -139
  28. package/src/requestError.ts +19 -19
  29. package/src/stream.ts +26 -26
  30. package/src/trace.ts +194 -193
  31. package/test/.eslintrc.json +5 -5
  32. package/test/{cgi.ts → __tests__/cgi.ts} +96 -95
  33. package/test/{config.ts → __tests__/config.ts} +41 -41
  34. package/test/__tests__/errorPage.ts +101 -0
  35. package/test/{oracledb_mock.ts → __tests__/oracledb_mock.ts} +98 -98
  36. package/test/{server.ts → __tests__/server.ts} +495 -498
  37. package/test/{stream.ts → __tests__/stream.ts} +21 -21
  38. package/test/mock/oracledb.ts +85 -85
  39. package/test/static/static.html +1 -1
  40. package/tsconfig.json +24 -23
  41. package/tsconfig.src.json +23 -22
  42. package/test/errorPage.ts +0 -101
  43. package/test/mocha.opts +0 -7
  44. package/tsconfig.test.json +0 -19
package/CHANGELOG.md CHANGED
@@ -1,106 +1,127 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
- and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
-
8
-
9
- ## [?.?.?] - ????-??-??
10
-
11
- ### Added
12
- - ???
13
-
14
- ### Changed
15
- - ???
16
-
17
- ### Fixed
18
- - ???
19
-
20
-
21
- ## [0.3.2] - 2020-03-29
22
-
23
- ### Fixed
24
- - Updated all dependencies.
25
-
26
-
27
- ## [0.3.1] - 2020-02-19
28
-
29
- ### Fixed
30
- - Updated all dependencies.
31
-
32
-
33
- ## [0.3.0] - 2019-09-17
34
-
35
- ### Added
36
- - Added a simple oracledb example "examples/oracledb_example.js".
37
-
38
- ### Changed
39
- - The credentials for the "examples/sample.js" are stored in "examples/credentials.js" and can also be set using the environment.
40
-
41
- ### Fixed
42
- - Updated to oracledb 4 and full binary support for node 12 and later.
43
- - Updated all minor dependencies.
44
-
45
-
46
- ## [0.2.0] - 2019-06-02
47
-
48
- ### Fixed
49
- - Fixed a problem with the dependencies when installing the npm package.
50
- - Fixed link to the official oracledb installation documentation.
51
- - Updated all dependencies.
52
-
53
-
54
- ## [0.1.2] - 2019-03-02
55
-
56
- ### Fixed
57
- - Updated all dependencies.
58
-
59
-
60
- ## [0.1.1] - 2019-02-05
61
-
62
- ### Changed
63
- - Migrated from Babel to TypeScript
64
-
65
- ### Fixed
66
- - Updated all dependencies.
67
-
68
-
69
- ## [0.1.0] - 2018-09-03
70
-
71
- ### Added
72
- - Added the configuration open "errorStyle" that can be set to "basic" or "debug".
73
- - The current web_plsql version is now a string property "version" in the middleware object.
74
- - Added the express status monitor to the sample. (http://localhost:8000/status)
75
-
76
- ### Fixed
77
- - When downloading a file, first send any eventual "other headers" like "Content-Disposition".
78
- - Changed x-db-xontent-length to x-db-content-length.
79
- - Updated all dependencies.
80
-
81
-
82
- ## [0.0.3] - 2018-03-20
83
-
84
- ### Added
85
- - Added support for the PlsqlPathAlias and PlsqlPathAliasProcedure DAD settings.
86
- - Partial support of APEX application.
87
- - Added example configuration for APEX application.
88
- - Added unit tests with a code coverage of over 90%.
89
-
90
- ### Fixed
91
- - Fixed some edge cases when processing the http headers.
92
-
93
-
94
- ## [0.0.2] - 2018-03-19
95
-
96
- ### Added
97
- - Allow to add or override CGI environment variables using the "cgi" property in the configuration object.
98
- - Added unit tests with a code coverage of over 80%.
99
-
100
- ### Fixed
101
- - Fixed wrong field name when uploading files using a form.
102
-
103
-
104
- ## [0.0.1] - 2018-03-17
105
-
106
- - Initial release
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
+ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [?.?.?] - 2021-??-??
9
+
10
+ ### Added
11
+ ### Changed
12
+ ### Fixed
13
+
14
+
15
+ ## [0.5.0] - 2022-05-09
16
+
17
+ ### Changed
18
+ - Replaced mocha with jest.
19
+ - Added support for node 18.
20
+
21
+ ### Fixed
22
+ - Updated all dependencies.
23
+
24
+
25
+ ## [0.4.2] - 2022-01-17
26
+
27
+ ### Changed
28
+ - node.js support starting with v16.
29
+
30
+ ### Fixed
31
+ - Updated all dependencies.
32
+
33
+
34
+ ## [0.4.1] - 2021-08-30
35
+
36
+ ### Fixed
37
+ - Updated all dependencies.
38
+
39
+
40
+ ## [0.4.0] - 2021-04-09
41
+
42
+ ### Added
43
+ - Added a simple oracledb example "examples/oracledb_example.js".
44
+
45
+ ### Changed
46
+ - The credentials for the "examples/sample.js" are stored in "examples/credentials.js" and can also be set using the environment.
47
+
48
+ ### Fixed
49
+ - Updated to oracledb 5 and full binary support for node 14 and later.
50
+ - Updated all minor dependencies.
51
+
52
+
53
+ ## [0.3.2] - 2020-03-29
54
+
55
+ ### Fixed
56
+ - Updated all minor dependencies.
57
+
58
+
59
+ ## [0.3.1] - 2020-02-19
60
+
61
+ ### Fixed
62
+ - Updated all minor dependencies.
63
+
64
+
65
+ ## [0.2.0] - 2019-06-02
66
+
67
+ ## [0.2.0] - 2019-06-02
68
+
69
+ ### Fixed
70
+ - Fixed a problem with the dependencies when installing the npm package.
71
+ - Fixed link to the official oracledb installation documentation.
72
+ - Updated all dependencies.
73
+
74
+
75
+ ## [0.1.2] - 2019-03-02
76
+
77
+ ### Fixed
78
+ - Updated all dependencies.
79
+
80
+
81
+ ## [0.1.1] - 2019-02-05
82
+
83
+ ### Changed
84
+ - Migrated from Babel to TypeScript
85
+
86
+ ### Fixed
87
+ - Updated all dependencies.
88
+
89
+
90
+ ## [0.1.0] - 2018-09-03
91
+
92
+ ### Added
93
+ - Added the configuration open "errorStyle" that can be set to "basic" or "debug".
94
+ - The current web_plsql version is now a string property "version" in the middleware object.
95
+ - Added the express status monitor to the sample. (http://localhost:8000/status)
96
+
97
+ ### Fixed
98
+ - When downloading a file, first send any eventual "other headers" like "Content-Disposition".
99
+ - Changed x-db-xontent-length to x-db-content-length.
100
+ - Updated all dependencies.
101
+
102
+
103
+ ## [0.0.3] - 2018-03-20
104
+
105
+ ### Added
106
+ - Added support for the PlsqlPathAlias and PlsqlPathAliasProcedure DAD settings.
107
+ - Partial support of APEX application.
108
+ - Added example configuration for APEX application.
109
+ - Added unit tests with a code coverage of over 90%.
110
+
111
+ ### Fixed
112
+ - Fixed some edge cases when processing the http headers.
113
+
114
+
115
+ ## [0.0.2] - 2018-03-19
116
+
117
+ ### Added
118
+ - Allow to add or override CGI environment variables using the "cgi" property in the configuration object.
119
+ - Added unit tests with a code coverage of over 80%.
120
+
121
+ ### Fixed
122
+ - Fixed wrong field name when uploading files using a form.
123
+
124
+
125
+ ## [0.0.1] - 2018-03-17
126
+
127
+ - Initial release
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- (The MIT License)
2
-
3
- Copyright (c) 2014-2018 Dieter Oberkofler <dieter.oberkofler@gmail.com>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
1
+ (The MIT License)
2
+
3
+ Copyright (c) 2014-2018 Dieter Oberkofler <dieter.oberkofler@gmail.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/README.md CHANGED
@@ -1,164 +1,165 @@
1
- [![NPM Version][npm-image]][npm-url]
2
- [![NPM Downloads][downloads-image]][downloads-url]
3
- [![Linux Build](https://travis-ci.org/doberkofler/web_plsql.svg?branch=master)](https://travis-ci.org/doberkofler/web_plsql)
4
- [![Build status][appveyor-image]][appveyor-url]
5
- [![Coverage Status](https://coveralls.io/repos/github/doberkofler/web_plsql/badge.svg?branch=master)](https://coveralls.io/github/doberkofler/web_plsql?branch=master)
6
-
7
- # Oracle PL/SQL Gateway Middleware for the Express web framework for Node.js
8
- This Express Middleware is a bridge between a PL/SQL application running in an Oracle Database and an Express web server for Node.js.
9
- It is an open-source alternative to mod_plsql, the Embedded PL/SQL Gateway and ORDS,
10
- allowing you to develop PL/SQL web applications using the PL/SQL Web Toolkit (OWA) and Oracle Application Express (Apex),
11
- and serve the content using the Express web framework for Node.js.
12
-
13
- Please feel free to try and suggest any improvements. Your thoughts and ideas are most welcome.
14
-
15
- # Release History
16
- See the [changelog](https://github.com/doberkofler/web_plsql/blob/master/CHANGELOG.md).
17
-
18
- # Installation
19
-
20
- ## Prerequisites
21
- There are several prerequisites needed to both compile and run the Oracle database driver.
22
- Please visit the [node-oracledb INSTALL.md](https://oracle.github.io/node-oracledb/INSTALL.html) page for more information.
23
-
24
- ## Installing
25
- * Create and move to a new directory
26
- * Create a new npm project (`npm init`)
27
- * Install package (`npm install web_plsql`)
28
- * Install the PL/SQL examples (`sqlplus node_modules/web_plsql/examples/sql/install.sql`)
29
- * Start the sample server (`node node_modules/web_plsql/examples/sample`)
30
- * Invoke a browser and open the page `http://localhost:8000/base`
31
-
32
- # Configuration
33
-
34
- ## How does a mod_plsql DAD configuration compare to the web_plsql app
35
-
36
- ```
37
- <Location /pls/sample>
38
- SetHandler pls_handler
39
- Order deny,allow
40
- Allow from all
41
- PlsqlDatabaseUsername sample
42
- PlsqlDatabasePassword sample
43
- PlsqlDatabaseConnectString ORCL
44
- PlsqlAuthenticationMode Basic
45
- PlsqlDefaultPage sample.pageindex
46
- PlsqlDocumentTablename doctable
47
- PlsqlErrorStyle DebugStyle
48
- PlsqlNlsLanguage AMERICAN_AMERICA.UTF8
49
- </Location>
50
- ```
51
-
52
- ```javascript
53
- const fs = require('fs');
54
- const path = require('path');
55
- const express = require('express');
56
- const bodyParser = require('body-parser');
57
- const multipart = require('connect-multiparty');
58
- const cookieParser = require('cookie-parser');
59
- const compression = require('compression');
60
- const morgan = require('morgan');
61
-
62
- const oracledb = require('oracledb');
63
- const webplsql = require('../lib');
64
-
65
- /*
66
- * Allocate the Oracle database pool
67
- */
68
-
69
- const databasePool = oracledb.createPool({
70
- user: 'sample',
71
- password: 'sample',
72
- connectString: 'ORCL',
73
- poolMin: 10,
74
- poolMax: 1000,
75
- poolIncrement: 10,
76
- queueRequests: false,
77
- queueTimeout: 1000
78
- });
79
-
80
- databasePool.catch(e => {
81
- console.error(`Unable to create database pool.\n${e.message}`);
82
- process.exit(1);
83
- });
84
-
85
- /*
86
- * Start the server
87
- */
88
-
89
- const PORT = 8000;
90
- const PATH = '/pls/sample';
91
- const OPTIONS = {
92
- defaultPage: 'sample.pageIndex',
93
- doctable: 'docTable',
94
- errorStyle: 'debug'
95
- };
96
-
97
- // create express app
98
- const app = express();
99
-
100
- // add middleware
101
- app.use(multipart());
102
- app.use(bodyParser.json());
103
- app.use(bodyParser.urlencoded({extended: true}));
104
- app.use(cookieParser());
105
- app.use(compression());
106
- app.use(morgan('combined', {stream: fs.createWriteStream(path.join(process.cwd(), 'access.log'), {flags: 'a'})}));
107
-
108
- // add the oracle pl/sql express middleware
109
- app.use(PATH + '/:name?', webplsql(databasePool, OPTIONS));
110
-
111
- // serving static files
112
- app.use('/static', express.static(path.join(process.cwd(), 'examples/static')));
113
-
114
- // listen on port
115
- console.log(`Waiting on http://localhost:${PORT}${PATH}`);
116
- app.listen(PORT);
117
- ```
118
-
119
- # Missing features
120
-
121
- ## Features in mod_plsql that are not (yet) available in web_plsql:
122
- - Support for APEX 5.
123
- - Default exclusion list.
124
- - Basic and custom authentication methods, based on the OWA_SEC package and custom packages.
125
-
126
- ## Supported mod_plsql configuration options:
127
- - PlsqlDatabaseConnectString -> specified when creating the oracledb connection pool
128
- - PlsqlDatabaseUserName -> specified when creating the oracledb connection pool
129
- - PlsqlDatabasePassword -> specified when creating the oracledb connection pool
130
- - PlsqlDefaultPage -> use the "doctable" configuration option
131
- - PlsqlDocumentTablename -> use the "defaultPage" configuration option
132
- - PlsqlErrorStyle -> use the "errorStyle" configuration option
133
- - PlsqlLogEnable -> use a HTTP request logger middleware for node.js like morgan
134
- - PlsqlLogDirectory -> use a HTTP request logger middleware for node.js like morgan
135
- - PlsqlPathAlias -> use the "pathAlias.alias" configuration option
136
- - PlsqlPathAliasProcedure -> use the "pathAlias.procedure" configuration option
137
-
138
- ## Configuration options that are not (yet) supported:
139
- - PlsqlIdleSessionCleanupInterval
140
- - PlsqlAfterProcedure
141
- - PlsqlAlwaysDescribeProcedure
142
- - PlsqlBeforeProcedure
143
- - PlsqlCGIEnvironmentList
144
- - PlsqlDocumentPath
145
- - PlsqlDocumentProcedure
146
- - PlsqlExclusionList
147
- - PlsqlRequestValidationFunction
148
- - PlsqlSessionCookieName
149
- - PlsqlSessionStateManagement
150
- - PlsqlTransferMode
151
-
152
- # License
153
-
154
- [MIT](LICENSE)
155
-
156
-
157
- [npm-image]: https://img.shields.io/npm/v/web_plsql.svg
158
- [npm-url]: https://npmjs.org/package/web_plsql
159
-
160
- [downloads-image]: https://img.shields.io/npm/dm/web_plsql.svg
161
- [downloads-url]: https://npmjs.org/package/web_plsql
162
-
163
- [appveyor-image]: https://ci.appveyor.com/api/projects/status/github/doberkofler/web_plsql?branch=master&svg=true
164
- [appveyor-url]: https://ci.appveyor.com/project/doberkofler/web-plsql
1
+ [![NPM Version][npm-image]][npm-url]
2
+ [![NPM Downloads][downloads-image]][downloads-url]
3
+ [![Linux Build](https://travis-ci.org/doberkofler/web_plsql.svg?branch=master)](https://travis-ci.org/doberkofler/web_plsql)
4
+ [![Build status][appveyor-image]][appveyor-url]
5
+ [![Coverage Status](https://coveralls.io/repos/github/doberkofler/web_plsql/badge.svg?branch=master)](https://coveralls.io/github/doberkofler/web_plsql?branch=master)
6
+
7
+ # Oracle PL/SQL Gateway Middleware for the Express web framework for Node.js
8
+ This Express Middleware is a bridge between a PL/SQL application running in an Oracle Database and an Express web server for Node.js.
9
+ It is an open-source alternative to mod_plsql, the Embedded PL/SQL Gateway and ORDS,
10
+ allowing you to develop PL/SQL web applications using the PL/SQL Web Toolkit (OWA) and Oracle Application Express (Apex),
11
+ and serve the content using the Express web framework for Node.js.
12
+
13
+ Please feel free to try and suggest any improvements. Your thoughts and ideas are most welcome.
14
+
15
+ # Release History
16
+ See the [changelog](https://github.com/doberkofler/web_plsql/blob/master/CHANGELOG.md).
17
+
18
+ # Installation
19
+
20
+ ## Prerequisites
21
+ There are several prerequisites needed to both compile and run the Oracle database driver.
22
+ Please visit the [node-oracledb INSTALL.md](https://oracle.github.io/node-oracledb/INSTALL.html) page for more information.
23
+ On where Oracle is looking for the client consult: https://oracle.github.io/node-oracledb/doc/api.html#oracleclientloading
24
+
25
+ ## Installing
26
+ * Create and move to a new directory
27
+ * Create a new npm project (`npm init`)
28
+ * Install package (`npm install web_plsql`)
29
+ * Install the PL/SQL examples (`sqlplus node_modules/web_plsql/examples/sql/install.sql`)
30
+ * Start the sample server (`node node_modules/web_plsql/examples/sample`)
31
+ * Invoke a browser and open the page `http://localhost:8000/base`
32
+
33
+ # Configuration
34
+
35
+ ## How does a mod_plsql DAD configuration compare to the web_plsql app
36
+
37
+ ```
38
+ <Location /pls/sample>
39
+ SetHandler pls_handler
40
+ Order deny,allow
41
+ Allow from all
42
+ PlsqlDatabaseUsername sample
43
+ PlsqlDatabasePassword sample
44
+ PlsqlDatabaseConnectString ORCL
45
+ PlsqlAuthenticationMode Basic
46
+ PlsqlDefaultPage sample.pageindex
47
+ PlsqlDocumentTablename doctable
48
+ PlsqlErrorStyle DebugStyle
49
+ PlsqlNlsLanguage AMERICAN_AMERICA.UTF8
50
+ </Location>
51
+ ```
52
+
53
+ ```javascript
54
+ const fs = require('fs');
55
+ const path = require('path');
56
+ const express = require('express');
57
+ const bodyParser = require('body-parser');
58
+ const multipart = require('connect-multiparty');
59
+ const cookieParser = require('cookie-parser');
60
+ const compression = require('compression');
61
+ const morgan = require('morgan');
62
+
63
+ const oracledb = require('oracledb');
64
+ const webplsql = require('../lib');
65
+
66
+ /*
67
+ * Allocate the Oracle database pool
68
+ */
69
+
70
+ const databasePool = oracledb.createPool({
71
+ user: 'sample',
72
+ password: 'sample',
73
+ connectString: 'ORCL',
74
+ poolMin: 10,
75
+ poolMax: 1000,
76
+ poolIncrement: 10,
77
+ queueRequests: false,
78
+ queueTimeout: 1000
79
+ });
80
+
81
+ databasePool.catch(e => {
82
+ console.error(`Unable to create database pool.\n${e.message}`);
83
+ process.exit(1);
84
+ });
85
+
86
+ /*
87
+ * Start the server
88
+ */
89
+
90
+ const PORT = 8000;
91
+ const PATH = '/pls/sample';
92
+ const OPTIONS = {
93
+ defaultPage: 'sample.pageIndex',
94
+ doctable: 'docTable',
95
+ errorStyle: 'debug'
96
+ };
97
+
98
+ // create express app
99
+ const app = express();
100
+
101
+ // add middleware
102
+ app.use(multipart());
103
+ app.use(bodyParser.json());
104
+ app.use(bodyParser.urlencoded({extended: true}));
105
+ app.use(cookieParser());
106
+ app.use(compression());
107
+ app.use(morgan('combined', {stream: fs.createWriteStream(path.join(process.cwd(), 'access.log'), {flags: 'a'})}));
108
+
109
+ // add the oracle pl/sql express middleware
110
+ app.use(PATH + '/:name?', webplsql(databasePool, OPTIONS));
111
+
112
+ // serving static files
113
+ app.use('/static', express.static(path.join(process.cwd(), 'examples/static')));
114
+
115
+ // listen on port
116
+ console.log(`Waiting on http://localhost:${PORT}${PATH}`);
117
+ app.listen(PORT);
118
+ ```
119
+
120
+ # Missing features
121
+
122
+ ## Features in mod_plsql that are not (yet) available in web_plsql:
123
+ - Support for APEX 5.
124
+ - Default exclusion list.
125
+ - Basic and custom authentication methods, based on the OWA_SEC package and custom packages.
126
+
127
+ ## Supported mod_plsql configuration options:
128
+ - PlsqlDatabaseConnectString -> specified when creating the oracledb connection pool
129
+ - PlsqlDatabaseUserName -> specified when creating the oracledb connection pool
130
+ - PlsqlDatabasePassword -> specified when creating the oracledb connection pool
131
+ - PlsqlDefaultPage -> use the "doctable" configuration option
132
+ - PlsqlDocumentTablename -> use the "defaultPage" configuration option
133
+ - PlsqlErrorStyle -> use the "errorStyle" configuration option
134
+ - PlsqlLogEnable -> use a HTTP request logger middleware for node.js like morgan
135
+ - PlsqlLogDirectory -> use a HTTP request logger middleware for node.js like morgan
136
+ - PlsqlPathAlias -> use the "pathAlias.alias" configuration option
137
+ - PlsqlPathAliasProcedure -> use the "pathAlias.procedure" configuration option
138
+
139
+ ## Configuration options that are not (yet) supported:
140
+ - PlsqlIdleSessionCleanupInterval
141
+ - PlsqlAfterProcedure
142
+ - PlsqlAlwaysDescribeProcedure
143
+ - PlsqlBeforeProcedure
144
+ - PlsqlCGIEnvironmentList
145
+ - PlsqlDocumentPath
146
+ - PlsqlDocumentProcedure
147
+ - PlsqlExclusionList
148
+ - PlsqlRequestValidationFunction
149
+ - PlsqlSessionCookieName
150
+ - PlsqlSessionStateManagement
151
+ - PlsqlTransferMode
152
+
153
+ # License
154
+
155
+ [MIT](LICENSE)
156
+
157
+
158
+ [npm-image]: https://img.shields.io/npm/v/web_plsql.svg
159
+ [npm-url]: https://npmjs.org/package/web_plsql
160
+
161
+ [downloads-image]: https://img.shields.io/npm/dm/web_plsql.svg
162
+ [downloads-url]: https://npmjs.org/package/web_plsql
163
+
164
+ [appveyor-image]: https://ci.appveyor.com/api/projects/status/github/doberkofler/web_plsql?branch=master&svg=true
165
+ [appveyor-url]: https://ci.appveyor.com/project/doberkofler/web-plsql