Subversion Repositories oidplus

Rev

Rev 1131 | Rev 1148 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1131 Rev 1143
1
 
1
 
2
Type safety:
2
Type safety:
3
- PhpStorm warnings
3
- PhpStorm warnings
4
- Re-Check "mixed"
4
- Re-Check "mixed"
-
 
5
- Nullable params passed to non-nullable methods => find using PHPStan level 7
-
 
6
 
-
 
7
April 2023 planned:
-
 
8
- Don't send information object OIDs to oid-info.com anymore
-
 
9
- https://github.com/danielmarschall/oidplus/issues/5 => "Offline mode" (do not contact internet, e.g. gs1-barcodes, polyfill, oidinfo, ...)
5
 
10
 
6
Admin Auth:
11
Admin Auth:
7
- implement argon2 as alternative to bcrypt?
12
- implement argon2 as alternative to bcrypt?
8
- idea: could RA-auth-plugins also be used to create the admin-hash? problem: setup/ generates hash with javascript, not via PHP!!!
13
- idea: could RA-auth-plugins also be used to create the admin-hash? problem: setup/ generates hash with javascript, not via PHP!!!
9
- BCrypt
14
- BCrypt
10
	Make #rounds and length of admin password configurable (pre-baseconfig?)
15
	Make #rounds and length of admin password configurable (pre-baseconfig?)
11
	Include dev/bcrypt_cost_calculator somewhere in the configuration page?
16
	Include dev/bcrypt_cost_calculator somewhere in the configuration page?
12
	... At least give a hint to the documentation, so they know how to run the tool and how to enter the cost in the configuration (for RA and Admin)
17
	... At least give a hint to the documentation, so they know how to run the tool and how to enter the cost in the configuration (for RA and Admin)
13
	... or in the setup page make an extra control how complex the admin password should be? but be aware that nobody enters a too big number (it makes DoS possible!)
18
	... or in the setup page make an extra control how complex the admin password should be? but be aware that nobody enters a too big number (it makes DoS possible!)
14
	See "Example #3" here https://www.php.net/manual/de/function.password-hash.php which helps you finding a good cost value for your system
19
	See "Example #3" here https://www.php.net/manual/de/function.password-hash.php which helps you finding a good cost value for your system
15
 
20
 
16
Feb 2023 entries:
21
Feb 2023 entries:
17
- Create oid => immediately after creating an OID, show the title/description edit dialog in a popup?? we must be sure that people don't add OIDs without title
22
- Create oid => immediately after creating an OID, show the title/description edit dialog in a popup?? we must be sure that people don't add OIDs without title
18
- OID Description textarea: add link to oid-info.com faq to show how descriptions should be done
23
- OID Description textarea: add link to oid-info.com faq to show how descriptions should be done
19
- Oidinfo blacklist object types (set by the user in the system config)
24
- Oidinfo blacklist object types (set by the user in the system config)
20
- Db Config: datatypes/enums for the settings
25
- Db Config: datatypes/enums for the settings
21
- Db Config: default setting button
26
- Db Config: default setting button
22
- improved PHP class loader, see frdlweb github discussion https://github.com/frdl/frdl-oidplus-plugin-type-pen/issues/1
27
- improved PHP class loader, see frdlweb github discussion https://github.com/frdl/frdl-oidplus-plugin-type-pen/issues/1
23
 
28
 
24
Ideas by Simon T.:
29
Ideas by Simon T.:
25
- System status plugin: Check if file owners are mixed
30
- System status plugin: Check if file owners are mixed
26
- a possibility to upload & assign custom icons to objects (both in the tree & in the page)
31
- a possibility to upload & assign custom icons to objects (both in the tree & in the page)
27
- a possibility to move objects/nodes from one hierarchy level to another (for now, I have to reconstruct them)
32
- a possibility to move objects/nodes from one hierarchy level to another (for now, I have to reconstruct them)
28
- 2FA TOTP support (+backup codes) - good for public instances, like FreeOID (Yes, I'm that one person who always asks for true totp 2FA everywhere xD )
33
- 2FA TOTP support (+backup codes) - good for public instances, like FreeOID (Yes, I'm that one person who always asks for true totp 2FA everywhere xD )
29
- a setting for a permanent choice between 'Always switch to newly created object' / 'Never switch' / 'Ask user if they want to switch'
34
- a setting for a permanent choice between 'Always switch to newly created object' / 'Never switch' / 'Ask user if they want to switch'
30
- a possibility to export&transfer all data between OIDplus'es: Attention: Do not use this XML Export/Import to exchange, backup or restore data between OIDplus systems!
35
- a possibility to export&transfer all data between OIDplus'es: Attention: Do not use this XML Export/Import to exchange, backup or restore data between OIDplus systems!
31
- a possibility to 'construct' my own object types in UI (1: specify list of their fields and 2: choose "oid-like/forward" com.example.api or "domain-like/reverse" api.example.com naming scheme), so they would appear as the whole new type
36
- a possibility to 'construct' my own object types in UI (1: specify list of their fields and 2: choose "oid-like/forward" com.example.api or "domain-like/reverse" api.example.com naming scheme), so they would appear as the whole new type
32
 
37
 
33
Recently added TODO entries:
38
Recently added TODO entries:
34
- should all country codes (even unused) in 1.2 and 2.16 be added to the wellknown list?
39
- should all country codes (even unused) in 1.2 and 2.16 be added to the wellknown list?
35
- "Decoding" section (tech info) at OID nodes, e.g. the AID decoder, should this be a scrolling <pre> block instead of a <code> block? (For mobile devices)
40
- "Decoding" section (tech info) at OID nodes, e.g. the AID decoder, should this be a scrolling <pre> block instead of a <code> block? (For mobile devices)
36
- problem: if an identical class file (with same namespace) is placed in two plugin folders, then the oidplus autoloader will include both, which will cause a fatal error
41
- problem: if an identical class file (with same namespace) is placed in two plugin folders, then the oidplus autoloader will include both, which will cause a fatal error
37
- oidplus dependency system (dependency plugin oid in manifest)
42
- oidplus dependency system (dependency plugin oid in manifest)
38
 
43
 
39
Databases:
44
Databases:
40
- Let plugins create tables for all DBMS by including a "create table" function with abstract types in the SQL slang plugins (similar to Medoo)
45
- Let plugins create tables for all DBMS by including a "create table" function with abstract types in the SQL slang plugins (similar to Medoo)
41
 
46
 
42
Ideas
47
Ideas
43
- if a third-party plugin throws an exception in the init() method, maybe OIDplus should avoid loading the plugin?
48
- if a third-party plugin throws an exception in the init() method, maybe OIDplus should avoid loading the plugin?
44
- "hidden" alt ids which are not shown in the GUI, but can be used for reverse-Alt-ID ? (I believe we have excluded some AltIDs which are "not neccessary", e.g. an GUID already is a GUID and therefore does not need a Namespace GUID, or something like that)
49
- "hidden" alt ids which are not shown in the GUI, but can be used for reverse-Alt-ID ? (I believe we have excluded some AltIDs which are "not neccessary", e.g. an GUID already is a GUID and therefore does not need a Namespace GUID, or something like that)
45
 
50
 
46
RDAP:
51
RDAP:
47
- Extend handle404() to handle more things required by the RFC, as well as more object types
52
- Extend handle404() to handle more things required by the RFC, as well as more object types
48
- More TODO see GitHub repository https://github.com/frdl/oidplus-frdlweb-rdap/issues
53
- More TODO see GitHub repository https://github.com/frdl/oidplus-frdlweb-rdap/issues
49
 
54
 
50
GS1 plugin:
55
GS1 plugin:
51
- prefilterQuery: If we query a gs1 which has a check digit, we should be redirected to the number without checkdigit.
56
- prefilterQuery: If we query a gs1 which has a check digit, we should be redirected to the number without checkdigit.
52
                  But... how do we know if the last digit is a checkdigit or if it is a longer number with a missing check-digit?
57
                  But... how do we know if the last digit is a checkdigit or if it is a longer number with a missing check-digit?
53
 
58
 
54
New Object Type plugins:
59
New Object Type plugins:
55
- LSID ?
60
- LSID ?
56
 
61
 
57
Treeview / Navigation:
62
Treeview / Navigation:
58
- In the tree, let the operator create "shortcuts" to important OIDs?
63
- In the tree, let the operator create "shortcuts" to important OIDs?
59
- Define "critical" OIDs which should always be visible; this means: the tree will always be extended so that these OIDs are shown?
64
- Define "critical" OIDs which should always be visible; this means: the tree will always be extended so that these OIDs are shown?
60
 
65
 
61
SECURITY Improvements:
66
SECURITY Improvements:
62
- Small security issue: A visitor can check which plugins are installed by either entering a "goto" command (e.g. "oidplus:vnag_version_check")
67
- Small security issue: A visitor can check which plugins are installed by either entering a "goto" command (e.g. "oidplus:vnag_version_check")
63
  and see which error message appears, or they could try to enter "plugin/adminPages/..." using the web browser and see if the result is HTTP 200 or HTTP 404.
68
  and see which error message appears, or they could try to enter "plugin/adminPages/..." using the web browser and see if the result is HTTP 200 or HTTP 404.
64
 
69
 
65
Setup:
70
Setup:
66
- Make following things configurable in some kind of base-config INI/XML file:
71
- Make following things configurable in some kind of base-config INI/XML file:
67
	Min length of admin password
72
	Min length of admin password
68
	Bcrypt Round
73
	Bcrypt Round
69
	Default language (like the "DEFAULT_LANGUAGE" base config setting)
74
	Default language (like the "DEFAULT_LANGUAGE" base config setting)
70
	Design (like the "design" config setting)
75
	Design (like the "design" config setting)
71
 
76
 
72
IDEAS FOR NEW FUNCTIONALITIES
77
IDEAS FOR NEW FUNCTIONALITIES
73
- Admin plugin "Attachments" with following functionalities:
78
- Admin plugin "Attachments" with following functionalities:
74
	* Show every object and its attachments, so that the admin knows what's going on
79
	* Show every object and its attachments, so that the admin knows what's going on
75
	  (Alternatively they can just look in the userdata directory using FTP)
80
	  (Alternatively they can just look in the userdata directory using FTP)
76
	* Give the ability to enable/disable RA uploading/deleting
81
	* Give the ability to enable/disable RA uploading/deleting
77
	  (Alternatively they need to do it in the configuration module and enter '0' and '1' by hand)
82
	  (Alternatively they need to do it in the configuration module and enter '0' and '1' by hand)
78
- "Notifications plugin"
83
- "Notifications plugin"
79
	OK:      Make a plugin that shows warnings from plugins (via "feature-interface"), e.g. the registration plugin could warn that CURL is not working correctly etc.
84
	OK:      Make a plugin that shows warnings from plugins (via "feature-interface"), e.g. the registration plugin could warn that CURL is not working correctly etc.
80
	No:	 But it should also have JavaScript components, e.g. check if dev/ and other confidential folders can be accessed (see code in setup/)
85
	No:	 But it should also have JavaScript components, e.g. check if dev/ and other confidential folders can be accessed (see code in setup/)
81
	Not yet: Also offer VNag that informs the user via Nagios if new Notifications are there?
86
	Not yet: Also offer VNag that informs the user via Nagios if new Notifications are there?
82
- Excel/CSV import tool for bulk data import (as alternative to XML import. Maybe previous Excel->XML import tool?)
87
- Excel/CSV import tool for bulk data import (as alternative to XML import. Maybe previous Excel->XML import tool?)
83
- External Syslog server
88
- External Syslog server
84
 
89
 
85
LDAP / OAUTH
90
LDAP / OAUTH
86
- Implement other OAuth providers?
91
- Implement other OAuth providers?
87
	Try out https://github.com/SocialConnect/auth
92
	Try out https://github.com/SocialConnect/auth
88
	     or https://github.com/hybridauth/hybridauth
93
	     or https://github.com/hybridauth/hybridauth
89
- Credentials and API-Keys should be protected or obfuscated or encrypted? (JoomlaKeychainKeychain?)
94
- Credentials and API-Keys should be protected or obfuscated or encrypted? (JoomlaKeychainKeychain?)
90
 
95
 
91
TINYMCE
96
TINYMCE
92
- mce dirty flag: call performCloseQueryCB()/performCloseCB(), if ...
97
- mce dirty flag: call performCloseQueryCB()/performCloseCB(), if ...
93
	OK:   The page (browser tab) is about to be closed or the page is reloaded
98
	OK:   The page (browser tab) is about to be closed or the page is reloaded
94
	      => TinyMCE uses the window.onbeforeunload event
99
	      => TinyMCE uses the window.onbeforeunload event
95
	TODO: The browser navigation buttons are clicked
100
	TODO: The browser navigation buttons are clicked
96
	      => This only works PARTIALLY. Preventing popstate() works and no data is lost,
101
	      => This only works PARTIALLY. Preventing popstate() works and no data is lost,
97
	         but the browser will think that it was successful!!
102
	         but the browser will think that it was successful!!
98
	OK:   When a node at the jsTree is clicked (conditional select)
103
	OK:   When a node at the jsTree is clicked (conditional select)
99
	OK:   In the openOidInPanel() function, i.e. when you enter something into the goto-bar.
104
	OK:   In the openOidInPanel() function, i.e. when you enter something into the goto-bar.
100
- critical bug: open page, edit tiny mce, click save. Then F5 reload (not Ctrl+F5): then the old content is there again. Except if you press Ctrl+F5
105
- critical bug: open page, edit tiny mce, click save. Then F5 reload (not Ctrl+F5): then the old content is there again. Except if you press Ctrl+F5
101
	(cannot be reproduced anymore? tested with firefox and chrome)
106
	(cannot be reproduced anymore? tested with firefox and chrome)
102
- TinyMCE "isDirty" does not correctly work on Internet Explorer: It always reports "dirty"
107
- TinyMCE "isDirty" does not correctly work on Internet Explorer: It always reports "dirty"
103
	see bug https://github.com/tinymce/tinymce/issues/6048
108
	see bug https://github.com/tinymce/tinymce/issues/6048
104
- The "is dirty" check should also include the "Title" input box
109
- The "is dirty" check should also include the "Title" input box
105
- (Sep 2022) Need more detailled reproduction:
110
- (Sep 2022) Need more detailled reproduction:
106
	If you use the browser back functionality and switch between
111
	If you use the browser back functionality and switch between
107
	content pages (containing TinyMCE) and non-content pages (e.g. FreeOID page)
112
	content pages (containing TinyMCE) and non-content pages (e.g. FreeOID page)
108
	then sometimes TinyMCE has vanished and you just have a small textarea with HTML code.
113
	then sometimes TinyMCE has vanished and you just have a small textarea with HTML code.
109
	You probably also need to use the "GoTo" button for reloading (not F5).
114
	You probably also need to use the "GoTo" button for reloading (not F5).
110
	Could be reproduced a few times. JavaScript console shows no error.
115
	Could be reproduced a few times. JavaScript console shows no error.
111
 
116
 
112
OID-IP
117
OID-IP
113
- query 'oid:' should show all root entries (subordinate entries), but there is only the message "not found"
118
- query 'oid:' should show all root entries (subordinate entries), but there is only the message "not found"
114
- offer signature checker tool to verify responses
119
- offer signature checker tool to verify responses
115
 
120
 
116
SETUP
121
SETUP
117
- There should be a "test database connection" button
122
- There should be a "test database connection" button
118
	=> however, this button could be abused to brute-force database connections,
123
	=> however, this button could be abused to brute-force database connections,
119
	   and even abusing the server to connect (brute-force) to foreign database servers
124
	   and even abusing the server to connect (brute-force) to foreign database servers
120
 
125
 
121
DATA TRANSFER PLUGIN
126
DATA TRANSFER PLUGIN
122
- XML import: Let the user decide if existing OIDs shall be overwritten
127
- XML import: Let the user decide if existing OIDs shall be overwritten
123
- XML import: Let the user decide if RAs should be created
128
- XML import: Let the user decide if RAs should be created
124
- XML import: Let the user decide if "created=now" should be set
129
- XML import: Let the user decide if "created=now" should be set
125
- XML import: Waiting animation
130
- XML import: Waiting animation
126
- XML import: If output (errors) is too long, show them in a page rather than an alert() box
131
- XML import: If output (errors) is too long, show them in a page rather than an alert() box
127
 
132
 
128
SMALL THINGS
133
SMALL THINGS
129
- when you copy something into the clipboard, please show a toast message
134
- when you copy something into the clipboard, please show a toast message
130
- Setup: "None" CAPTCHA plugin should be the first option
135
- Setup: "None" CAPTCHA plugin should be the first option
131
- oobe.php leaks email address of administrator to spam bots
136
- oobe.php leaks email address of administrator to spam bots
132
- Use DIRECTORY_SEPARATOR everywhere where local paths are used
137
- Use DIRECTORY_SEPARATOR everywhere where local paths are used
133
- when you enter "guid:{0139d44e-6afe-49f2-8690-3dafcae6ffb8}" (which will be corrected in PHP prefilterQuery), JavaScript will not highlight "guid:0139d44e-6afe-49f2-8690-3dafcae6ffb8", because it searches for the brackets
138
- when you enter "guid:{0139d44e-6afe-49f2-8690-3dafcae6ffb8}" (which will be corrected in PHP prefilterQuery), JavaScript will not highlight "guid:0139d44e-6afe-49f2-8690-3dafcae6ffb8", because it searches for the brackets
134
- Let the user create shortcuts to any OIDplus-Goto-URLS (e.g. important OIDs) directly in the menu, without writing a plugin?
139
- Let the user create shortcuts to any OIDplus-Goto-URLS (e.g. important OIDs) directly in the menu, without writing a plugin?
135
- Auto open some nodes automatically, or open until a specific level (like done in the Resources plugin?)
140
- Auto open some nodes automatically, or open until a specific level (like done in the Resources plugin?)
136
- Let the JavaScript value "oidplus_menu_width" being modified by a design plugin and/or the database config.
141
- Let the JavaScript value "oidplus_menu_width" being modified by a design plugin and/or the database config.
137
  A plugin can already do this by using htmlHeaderUpdate() and creating an inline JavaScript to modify the global variable "oidplus_menu_width"
142
  A plugin can already do this by using htmlHeaderUpdate() and creating an inline JavaScript to modify the global variable "oidplus_menu_width"
138
- At a lot of forms, if you press "enter", the "form" will not be submitted (e.g. "create ra" plugin), cannot reproduce?
143
- At a lot of forms, if you press "enter", the "form" will not be submitted (e.g. "create ra" plugin), cannot reproduce?
139
- system log plugin: Only show 100 events and let the user switch pages. To avoid that you load a page with 10000+ log entries!
144
- system log plugin: Only show 100 events and let the user switch pages. To avoid that you load a page with 10000+ log entries!
140
- Alpine Linux SVN update: I get the error "svn: warning: W000013: Can't open file '/root/.subversion/servers': Permission denied", although "whoami" is "apache"! (Maybe because the initial checkout was done by root?!)
145
- Alpine Linux SVN update: I get the error "svn: warning: W000013: Can't open file '/root/.subversion/servers': Permission denied", although "whoami" is "apache"! (Maybe because the initial checkout was done by root?!)
141
- AutoUpdate via cron?
146
- AutoUpdate via cron?
142
- Login page etc.: If user clicks on a tab, then the gotoedit and static link should change to e.g. "oidplus:login$admin" or "oidplus:login$ra", respectively.
147
- Login page etc.: If user clicks on a tab, then the gotoedit and static link should change to e.g. "oidplus:login$admin" or "oidplus:login$ra", respectively.
143
        $('#static_link').attr("href", "index.php?goto="+encodeURIComponent(id));
148
        $('#static_link').attr("href", "index.php?goto="+encodeURIComponent(id));
144
        $("#gotoedit").val(id);
149
        $("#gotoedit").val(id);
145
- Add show_waiting_anim() and hide_waiting_anim() to all AJAX queries, like it is done in plugin "Software update"
150
- Add show_waiting_anim() and hide_waiting_anim() to all AJAX queries, like it is done in plugin "Software update"
146
- #gotobutton should have the same top and height as #gotoedit
151
- #gotobutton should have the same top and height as #gotoedit
147
- RA address data: Country selection box like in OIDInfo
152
- RA address data: Country selection box like in OIDInfo
148
	Possible data source: https://datahub.io/core/country-list#resource-data
153
	Possible data source: https://datahub.io/core/country-list#resource-data
149
- minimum menu expansion level: make it configurable for all objects and plugins, e.g. so that when you open OIDplus, all OIDs till level 2 are expanded
154
- minimum menu expansion level: make it configurable for all objects and plugins, e.g. so that when you open OIDplus, all OIDs till level 2 are expanded
150
- There can be an extra table which contains "key - value" fields for each object
155
- There can be an extra table which contains "key - value" fields for each object
151
	Maybe even let the user define fields (with data type) which is then displayed at every OID,
156
	Maybe even let the user define fields (with data type) which is then displayed at every OID,
152
	e.g. HL7 could define a lot of fields which are then all displayed at the OIDs and can be edited
157
	e.g. HL7 could define a lot of fields which are then all displayed at the OIDs and can be edited
153
- API : Make a function that checks if a RA exists, and use it everywhere where needed
158
- API : Make a function that checks if a RA exists, and use it everywhere where needed
154
- Object type plugins : take care that "treeicon.png" and "icon_big.png" exist everywhere (become standard)
159
- Object type plugins : take care that "treeicon.png" and "icon_big.png" exist everywhere (become standard)
155
- freeoid: gmail app does not hyperlink the activation URL. why?
160
- freeoid: gmail app does not hyperlink the activation URL. why?
156
- how to avoid invite spamming?
161
- how to avoid invite spamming?
157
- when login expired, remove entries in the treeview
162
- when login expired, remove entries in the treeview
158
- disable specific functions (e.g. invite, login, rainfo, forgot password) if the plugins are not installed (check if class type is registered using class_exists())
163
- disable specific functions (e.g. invite, login, rainfo, forgot password) if the plugins are not installed (check if class type is registered using class_exists())
159
- <abbr> in <code> is double underlined; that's not good
164
- <abbr> in <code> is double underlined; that's not good
160
- if you have multiple identifiers, how do you tell the system which identifier should be the preferred one?
165
- if you have multiple identifiers, how do you tell the system which identifier should be the preferred one?
161
- show whois links only if folder "whois/" exists
166
- show whois links only if folder "whois/" exists
162
- disable autocomplete on some forms
167
- disable autocomplete on some forms
163
- graphical improvements of forms (input edits aligned)
168
- graphical improvements of forms (input edits aligned)
164
- "Documents" section: Make documentation for usage of OIDplus (for members only)
169
- "Documents" section: Make documentation for usage of OIDplus (for members only)
165
- admin config more user friendly, e.g. having the enable/disable object type stuff (like in registration wizard) also in the admin control panel. Also, have types like bool, so we show a checkbox instead of an edit control
170
- admin config more user friendly, e.g. having the enable/disable object type stuff (like in registration wizard) also in the admin control panel. Also, have types like bool, so we show a checkbox instead of an edit control
166
- it would be good if after the login, the opened nodes in the tree would stay open
171
- it would be good if after the login, the opened nodes in the tree would stay open
167
- html checkbox: make use of "label for"
172
- html checkbox: make use of "label for"
168
- when javascript fails, the form will be submitted to './' , that is not good! failed javascript must return false, so that the form does not get submitted
173
- when javascript fails, the form will be submitted to './' , that is not good! failed javascript must return false, so that the form does not get submitted
169
- admin: show privacy entries from RAs (but grey, so you know that it is private)
174
- admin: show privacy entries from RAs (but grey, so you know that it is private)
170
- admin should be able to edit contact data of a foreign RA [XXX isn't that already implemented?]
175
- admin should be able to edit contact data of a foreign RA [XXX isn't that already implemented?]
171
- freeoid: hide asn.1 and iri columns, because the RA is not allocating these identifiers?
176
- freeoid: hide asn.1 and iri columns, because the RA is not allocating these identifiers?
172
- .... maybe we should have a list of OIDs where the OID does not allocate ASN.1/IRI identifiers... then we can also make use of the OID-WHOIS attributes
177
- .... maybe we should have a list of OIDs where the OID does not allocate ASN.1/IRI identifiers... then we can also make use of the OID-WHOIS attributes
173
- Privacy flag of RAs: Should there be more privacy levels, e.g. that you don't show your personal name etc.?
178
- Privacy flag of RAs: Should there be more privacy levels, e.g. that you don't show your personal name etc.?
174
- You should be able to change the "created" date for an object! Or maybe hide it completely if you don't know the original creation date?
179
- You should be able to change the "created" date for an object! Or maybe hide it completely if you don't know the original creation date?
175
- In the CRUD table, you should be able to see the name of the OID? But on the other hand, the title is not in the control of the Superior RA, and the CRUD table is actually the allocation table of the Superior RA.
180
- In the CRUD table, you should be able to see the name of the OID? But on the other hand, the title is not in the control of the Superior RA, and the CRUD table is actually the allocation table of the Superior RA.
176
- natOrder() does only work for OID namespace!!! other sort mechanisms are necessary for other object types
181
- natOrder() does only work for OID namespace!!! other sort mechanisms are necessary for other object types
177
- jstree select: automatically scroll down
182
- jstree select: automatically scroll down
178
- jstree: right click "open in new tab" is not possible
183
- jstree: right click "open in new tab" is not possible
179
- things like RA: show more things, address, email etc.
184
- things like RA: show more things, address, email etc.
180
- note that we (and the Internet Draft) talk about Objects, but actually OIDs only reference objects, but they are not the objects
185
- note that we (and the Internet Draft) talk about Objects, but actually OIDs only reference objects, but they are not the objects
181
- Multilang
186
- Multilang
182
	* Not yet translated:
187
	* Not yet translated:
183
		- plugins\publicPages\100_whois\whois\index.php [Problem: This page is kinda standalone and does not include the OIDplus code]
188
		- plugins\publicPages\100_whois\whois\index.php [Problem: This page is kinda standalone and does not include the OIDplus code]
184
		- vendor\danielmarschall\fileformats\fileformats.conf [Problem: This is a third-party code!]
189
		- vendor\danielmarschall\fileformats\fileformats.conf [Problem: This is a third-party code!]
185
		- includes\classes\VtsBrowserDownload.class.php [Problem: This is a third-party code!]
190
		- includes\classes\VtsBrowserDownload.class.php [Problem: This is a third-party code!]
186
	* Is there some useful German translation of the Apache 2.0 license?
191
	* Is there some useful German translation of the Apache 2.0 license?
187
- WEID UUID: Show the UUID 2.25/GUID equivalent as alternative ID
192
- WEID UUID: Show the UUID 2.25/GUID equivalent as alternative ID
188
- When an OID is edited/added/deleted, don't reload the whole tree. Instead, just change the tree! This looks much more fluid.
193
- When an OID is edited/added/deleted, don't reload the whole tree. Instead, just change the tree! This looks much more fluid.
189
- adminPages/902_systemfile_check/OIDplusPageAdminSystemFileCheck.class.php
194
- adminPages/902_systemfile_check/OIDplusPageAdminSystemFileCheck.class.php
190
	Should thumbs.db (case insensitive) and Apple turds be excluded?
195
	Should thumbs.db (case insensitive) and Apple turds be excluded?
191
	On the other hand, these files could then be used to hide malicious data
196
	On the other hand, these files could then be used to hide malicious data
192
- Actually, there should be two Update-Timestamps: An Update-Timestamp for the Superior RA (i.e. when was the ASN.1/IRI or the RA changed? And a RA Update-Timestamp (i.e. when did the RA change its description?)
197
- Actually, there should be two Update-Timestamps: An Update-Timestamp for the Superior RA (i.e. when was the ASN.1/IRI or the RA changed? And a RA Update-Timestamp (i.e. when did the RA change its description?)
193
 
198
 
194
UPDATER
199
UPDATER
195
- Internal problem with GIT distribution channel:
200
- Internal problem with GIT distribution channel:
196
	The GIT version might be behind the master SVN repository
201
	The GIT version might be behind the master SVN repository
197
	So if you do "git pull", the update/index.php page might still show that an update is available!
202
	So if you do "git pull", the update/index.php page might still show that an update is available!
198
- add some kind of loading cricle animation or a progress bar during the update
203
- add some kind of loading cricle animation or a progress bar during the update
199
 
204
 
200
DATABASE
205
DATABASE
201
- SQLite3: Implement Natural OID sorting (natSort)
206
- SQLite3: Implement Natural OID sorting (natSort)
202
- make usage of Foreign Keys
207
- make usage of Foreign Keys
203
	PROBLEM: we need foreign keys with no check, because
208
	PROBLEM: we need foreign keys with no check, because
204
	a) we want to keep log entries even if an object/user is deleted
209
	a) we want to keep log entries even if an object/user is deleted
205
	b) log_user.username can also be 'admin' (and therefore not be a foreign key to table 'ra')
210
	b) log_user.username can also be 'admin' (and therefore not be a foreign key to table 'ra')
206
	c) not every object should have a registered RA. There should be "unknown" RAs where only the email address is known
211
	c) not every object should have a registered RA. There should be "unknown" RAs where only the email address is known
207
 
212
 
208
FUTURE
213
FUTURE
209
- implement sitemaps xml
214
- implement sitemaps xml
210
- admin should be able to change wellknown oids?
215
- admin should be able to change wellknown oids?
211
- move oid to different arc
216
- move oid to different arc
212
- for very large arcs (e.g. PEN): maybe you should not show everything in the tree select?
217
- for very large arcs (e.g. PEN): maybe you should not show everything in the tree select?
213
- support for ORS?
218
- support for ORS?
214
- "Cutting Edge Technologie": AJAX, JSON, completely UTF-8, CRUD frameworks, PDO, HTML5, Mobile Design, Pure CSS, Autoloading, Object Oriented (maybe not MVC, though), Testing, ...
219
- "Cutting Edge Technologie": AJAX, JSON, completely UTF-8, CRUD frameworks, PDO, HTML5, Mobile Design, Pure CSS, Autoloading, Object Oriented (maybe not MVC, though), Testing, ...
215
- "Search" plugin: Feature to search inside documentation (doc/ directory)
220
- "Search" plugin: Feature to search inside documentation (doc/ directory)
216
- "Search" plugin: I want to search in all object types and RAs. Not first select the type.
221
- "Search" plugin: I want to search in all object types and RAs. Not first select the type.
217
- How can we make sure that example objects are not exported using oid-info.com export?
222
- How can we make sure that example objects are not exported using oid-info.com export?
218
- Administrator-Interface: enable and disable object types
223
- Administrator-Interface: enable and disable object types
219
- detailled change-history of each oid
224
- detailled change-history of each oid
220
- Add a "nonce" to all inline JavaScripts and add this nonce to CSP. Then disallow inline-JavaScripts in CSP completely.
225
- Add a "nonce" to all inline JavaScripts and add this nonce to CSP. Then disallow inline-JavaScripts in CSP completely.
221
 
226
 
222
BUGS?
227
BUGS?
223
- BUG! RA is logged in, then it is deleted => the RA can still edit their OIDs, since their session is not destroyed
228
- BUG! RA is logged in, then it is deleted => the RA can still edit their OIDs, since their session is not destroyed
224
- OIDplus does not work in Safari Mobile!
229
- OIDplus does not work in Safari Mobile!
225
	1. You cannot scroll the OID grid, as the scrolling affects the whole page, not the grid.
230
	1. You cannot scroll the OID grid, as the scrolling affects the whole page, not the grid.
226
	2. JQueryUI sliders cannot be dragged
231
	2. JQueryUI sliders cannot be dragged
227
 
232
 
228
REJECTED IDEAS
233
REJECTED IDEAS
229
- well known OIDs: Should also the RA address be recorded? (so that you cannot create a 2.999 OID and telling that you are the RA?)
234
- well known OIDs: Should also the RA address be recorded? (so that you cannot create a 2.999 OID and telling that you are the RA?)
230
- should there more than one person be able to manage an OID? (multiple emails per "RA" ?)
235
- should there more than one person be able to manage an OID? (multiple emails per "RA" ?)
231
- record first RA and current RA => X.660 does not have this requirement
236
- record first RA and current RA => X.660 does not have this requirement
232
- markers DRAFT, LEAF and FROZEN etc. => use "Protected" if you want to make it invisible
237
- markers DRAFT, LEAF and FROZEN etc. => use "Protected" if you want to make it invisible
233
- Giving the "goto" argument OIDs instead of names, so that there are no conflict
238
- Giving the "goto" argument OIDs instead of names, so that there are no conflict
234
  with plugin vendors (like it was done with the "plugin" argument at ajax.php)
239
  with plugin vendors (like it was done with the "plugin" argument at ajax.php)
235
	Rejected due to following reasons:
240
	Rejected due to following reasons:
236
	a) The "goto" parameter should usually be human readable (especially since it is shown at the right top)...
241
	a) The "goto" parameter should usually be human readable (especially since it is shown at the right top)...
237
	   Having a ViaThinkSoft OID there might get the user confused because they could think that the
242
	   Having a ViaThinkSoft OID there might get the user confused because they could think that the
238
	   page is a OID page request for that OID instead of a plugin page.
243
	   page is a OID page request for that OID instead of a plugin page.
239
	b) Vendors should use something like "?goto=oidplus:com.example...."
244
	b) Vendors should use something like "?goto=oidplus:com.example...."
240
- AID Plugin: When aid_decoder.inc.php finds a mistake, should we forbid to create the AID?
245
- AID Plugin: When aid_decoder.inc.php finds a mistake, should we forbid to create the AID?
241
	=> Rejected. Some companies might already use invalid identifiers.
246
	=> Rejected. Some companies might already use invalid identifiers.
242
 
247
 
243
LOGS
248
LOGS
244
- prune logs entries? automatically prune things like "logged in" but not prune OID changes, etc?
249
- prune logs entries? automatically prune things like "logged in" but not prune OID changes, etc?
245
- admin logs: don't show all logs. load more log entries as soon as the page is scrolled down
250
- admin logs: don't show all logs. load more log entries as soon as the page is scrolled down
246
- when user changed email from "A" => "B", then all previous log events for "A" are not visible for "B" anymore!
251
- when user changed email from "A" => "B", then all previous log events for "A" are not visible for "B" anymore!
247
	=> should we also change the log entry email address references when the user changes their email address?
252
	=> should we also change the log entry email address references when the user changes their email address?
248
- At "oidplus:system_log", user log section and object log section, the users and/or objects should be clickable
253
- At "oidplus:system_log", user log section and object log section, the users and/or objects should be clickable
249
 
254
 
250
IDEAS
255
IDEAS
251
- admin plugin that shows the recent oid edits / inserts?
256
- admin plugin that shows the recent oid edits / inserts?
252
- in the search feature, search for object creation/update date?
257
- in the search feature, search for object creation/update date?
253
- adminPages/800_plugins: We could also list plugins that have been blacklisted in the config? But that is hard to achieve, because these plugins are ignored and not loaded at all
258
- adminPages/800_plugins: We could also list plugins that have been blacklisted in the config? But that is hard to achieve, because these plugins are ignored and not loaded at all
254
- Similar to Security Event Token, we could issue JWT tokens which log the allocation of an OID to an RA. This signed token can be stored somewhere and can be used to proove the ownership of an OID.
259
- Similar to Security Event Token, we could issue JWT tokens which log the allocation of an OID to an RA. This signed token can be stored somewhere and can be used to proove the ownership of an OID.
255
- have an option to assign a custom icon to any object in the system (file attachment with name "icon.*"?). Especially useful for easy visual distinguishing between root objects inside 'Other objects', but may be useful for other object types too.
260
- have an option to assign a custom icon to any object in the system (file attachment with name "icon.*"?). Especially useful for easy visual distinguishing between root objects inside 'Other objects', but may be useful for other object types too.
256
- Give configuration settings a type (int, bool, enum, etc.) so that the configuration page can be more user friendly (use a checkbox rather than typing "1" and "0")
261
- Give configuration settings a type (int, bool, enum, etc.) so that the configuration page can be more user friendly (use a checkbox rather than typing "1" and "0")
257
	Even better: Give plugins the opportunity to display their own config GUI, exactly like OOBE does
262
	Even better: Give plugins the opportunity to display their own config GUI, exactly like OOBE does
258
- OID-WHOIS: For well-known OIDs, e.g. IANA PEN, show information where to retrieve information
263
- OID-WHOIS: For well-known OIDs, e.g. IANA PEN, show information where to retrieve information
259
	=> Problem: Well-known OIDs are implemented as ASN/IRI identifiers only; no information in table "objects"!
264
	=> Problem: Well-known OIDs are implemented as ASN/IRI identifiers only; no information in table "objects"!
260
- Should plugins be able to add additional object sub-nodes/pages into the tree,
265
- Should plugins be able to add additional object sub-nodes/pages into the tree,
261
  which are not "real" objects? For example, in the object tree,
266
  which are not "real" objects? For example, in the object tree,
262
  you could include file attachments [by File Attachment Plugin].
267
  you could include file attachments [by File Attachment Plugin].
263
  Also, Object Type Plugins could add more sub-nodes/pages into the
268
  Also, Object Type Plugins could add more sub-nodes/pages into the
264
  tree, for example if you have object types where each object
269
  tree, for example if you have object types where each object
265
  consists of various components.
270
  consists of various components.
266
  => currently OIDplus::menuUtils()->tree_populate() handles the object tree loading
271
  => currently OIDplus::menuUtils()->tree_populate() handles the object tree loading
267
     ... but shouldn't this task do the plugin publicPages/000_objects ?
272
     ... but shouldn't this task do the plugin publicPages/000_objects ?
268
     ... then we could establish an API which can give object type plugins the possibility to add additional children
273
     ... then we could establish an API which can give object type plugins the possibility to add additional children
269
- Hide/Proxy RA E-Mails from public requests
274
- Hide/Proxy RA E-Mails from public requests
270
- let users choose their own creation arc
275
- let users choose their own creation arc
271
- In regards multilinguality: Allow "oidplus_base$dede.css", so that languages can have their own CSS (e.g. wider "Go" button)
276
- In regards multilinguality: Allow "oidplus_base$dede.css", so that languages can have their own CSS (e.g. wider "Go" button)
272
	But this means that a language change also need to reload the style sheet (like the color-plugin does when you click "Test")
277
	But this means that a language change also need to reload the style sheet (like the color-plugin does when you click "Test")
273
- when an object was not found, the error message could show the next possible known object (like WebWHOIS does)
278
- when an object was not found, the error message could show the next possible known object (like WebWHOIS does)
274
- the "goto" quickbar (at the top right) could also be used to search something ...
279
- the "goto" quickbar (at the top right) could also be used to search something ...
275
- ... alternatively, the "object not found" error page could link to the search plugin
280
- ... alternatively, the "object not found" error page could link to the search plugin
276
- make color plugin available for everyone. Admin may permanently save the colors, but users should be able to set their own theme, saved via cookies
281
- make color plugin available for everyone. Admin may permanently save the colors, but users should be able to set their own theme, saved via cookies
277
- there should be a form where an RA can request an invitation, even if the superior RA did not invite them.
282
- there should be a form where an RA can request an invitation, even if the superior RA did not invite them.
278
  the fact that a RA exists in the Object Table should permit the RA to invite theirself.
283
  the fact that a RA exists in the Object Table should permit the RA to invite theirself.
279
- make a list of OIDs that do not assign ASN1/IRI identifiers (e.g. IANA PEN or ViaThinkSoft FreeOID), then reject any identifier the user provides
284
- make a list of OIDs that do not assign ASN1/IRI identifiers (e.g. IANA PEN or ViaThinkSoft FreeOID), then reject any identifier the user provides
280
- sanitize IPv4, IPv6, GUID during creation
285
- sanitize IPv4, IPv6, GUID during creation
281
	bei IPv4 und IPv6: - if it is a single host address, don't put /32 or /128 suffix
286
	bei IPv4 und IPv6: - if it is a single host address, don't put /32 or /128 suffix
282
	                   - strike unnecessary bits that are not defined in the netmask (also at the whois output)
287
	                   - strike unnecessary bits that are not defined in the netmask (also at the whois output)
283
- let the sysadmin decide if they want the title be "systemtitle - object title" or "object title - systemtitle"
288
- let the sysadmin decide if they want the title be "systemtitle - object title" or "object title - systemtitle"
284
- should a RA be able to mark their own oid as confidential, instead of asking the superior RA?
289
- should a RA be able to mark their own oid as confidential, instead of asking the superior RA?
285
- should there be an OIDplus project page at oidplus.viathinksoft.com instead of a "naked" system?
290
- should there be an OIDplus project page at oidplus.viathinksoft.com instead of a "naked" system?
286
- vendor signature to plugins + viathinksoft signatures + "check" program if all signatures match
291
- vendor signature to plugins + viathinksoft signatures + "check" program if all signatures match
287
	Why do we need it?
292
	Why do we need it?
288
		We want to make sure that the OIDplus files aren't modified by hackers (e.g. replaced by a webshell)
293
		We want to make sure that the OIDplus files aren't modified by hackers (e.g. replaced by a webshell)
289
		Unfortunately, we can only verify our own files. Plugins by vendors cannot be checked.
294
		Unfortunately, we can only verify our own files. Plugins by vendors cannot be checked.
290
	Problem:
295
	Problem:
291
		We cannot store the ViaThinkSoft public key or the checking-tool in the OIDplus directory,
296
		We cannot store the ViaThinkSoft public key or the checking-tool in the OIDplus directory,
292
		because then they could be altered by the hacker.
297
		because then they could be altered by the hacker.
293
		We also cannot add a "verified" icon in the "Plugins" admin section,
298
		We also cannot add a "verified" icon in the "Plugins" admin section,
294
		because this could also be fake.
299
		because this could also be fake.
295
		The only solution to verify the OIDplus installation is to run a tool that
300
		The only solution to verify the OIDplus installation is to run a tool that
296
		is downloaded on-demand over a secure connection.
301
		is downloaded on-demand over a secure connection.
297
	Solution:
302
	Solution:
298
		1. The OIDplus installation contains a file "signature.md5" that contains the MD5 sums of all files.
303
		1. The OIDplus installation contains a file "signature.md5" that contains the MD5 sums of all files.
299
		   The whole file is RSA signed with a ViaThinkSoft key.
304
		   The whole file is RSA signed with a ViaThinkSoft key.
300
		2. We should offer a tool which can be started on-demand by running something like:
305
		2. We should offer a tool which can be started on-demand by running something like:
301
		   curl -sSL https://oidplus.viathinksoft.com/signature_check/ | bash
306
		   curl -sSL https://oidplus.viathinksoft.com/signature_check/ | bash
302
		   This tool contains a check procedure and the ViaThinkSoft public key,
307
		   This tool contains a check procedure and the ViaThinkSoft public key,
303
		   and verifies the OIDplus installation.
308
		   and verifies the OIDplus installation.
304
		3. The tool should also warn if there are missing or additional files,
309
		3. The tool should also warn if there are missing or additional files,
305
		   because some additional files may be executed (e.g. if they are located in includes/db_updates/)
310
		   because some additional files may be executed (e.g. if they are located in includes/db_updates/)
306
		4. With every new release of OIDplus, this file must be re-generated!
311
		4. With every new release of OIDplus, this file must be re-generated!
307
- have a menu item (plugin) "latest updates" which lists OIDs that have been changed or added recently?
312
- have a menu item (plugin) "latest updates" which lists OIDs that have been changed or added recently?
308
- (unsure:) would it be good if the superior RA comment is shown in the object page itself?
313
- (unsure:) would it be good if the superior RA comment is shown in the object page itself?
309
- Protect attachments with a password? (Information objects?)
314
- Protect attachments with a password? (Information objects?)
310
- IPv4/IPv6 plugin: Should we allow that private IPs are put into categories (e.g. different physical locations having the same subnet?)
315
- IPv4/IPv6 plugin: Should we allow that private IPs are put into categories (e.g. different physical locations having the same subnet?)
311
- Like in OOBE, plugins should give the possibility to add an individual UI in the "oidplus:edit_config" page
316
- Like in OOBE, plugins should give the possibility to add an individual UI in the "oidplus:edit_config" page
312
- Login area: The "administrator" node in the treeview could be clicked, leading to a page that contains a link to all sub pages (big icons ordered in a grid?)
317
- Login area: The "administrator" node in the treeview could be clicked, leading to a page that contains a link to all sub pages (big icons ordered in a grid?)
313
- "Invisible/service" plugin type, like page plugins, but they have no gui() method. They can be used for a simple task like extending HTTP headers
318
- "Invisible/service" plugin type, like page plugins, but they have no gui() method. They can be used for a simple task like extending HTTP headers
314
- OAuth for admin login? (email of administrator)
319
- OAuth for admin login? (email of administrator)
315
- SAML 2.0 SSO auth plugin?
320
- SAML 2.0 SSO auth plugin?
316
 
321
 
317
QUESTIONS
322
QUESTIONS
318
- should the collation be case sensitive or case insensitive? For Java package names, it should be case senstivie
323
- should the collation be case sensitive or case insensitive? For Java package names, it should be case senstivie
319
- use word "guid" or "uuid"?
324
- use word "guid" or "uuid"?
320
- should "OID updated" be split into two categories "updated by superior" (e.g. identifiers) and "updated by owner" (description etc)?
325
- should "OID updated" be split into two categories "updated by superior" (e.g. identifiers) and "updated by owner" (description etc)?
321
- Don't renew "updated" field if you just click "Update" but didn't change anything (e.g. because you just wanted to send an invitation again)
326
- Don't renew "updated" field if you just click "Update" but didn't change anything (e.g. because you just wanted to send an invitation again)
322
- "Documents" section: Can base of URLs/images inside the HTML be changed automatically?
327
- "Documents" section: Can base of URLs/images inside the HTML be changed automatically?
323
 
328
 
324
PRIVACY
329
PRIVACY
325
- bring back "vendor/cookiecontent"? DM 28 May 2019: Removed CookieConsent temporarily, because it is placed at the beginning of the page and therefore ruins the Google index ...
330
- bring back "vendor/cookiecontent"? DM 28 May 2019: Removed CookieConsent temporarily, because it is placed at the beginning of the page and therefore ruins the Google index ...
326
	=> We might not need it, because cookies are only set during login, and at the login page itself, we already warn about cookies, in addition to the Privacy documentation
331
	=> We might not need it, because cookies are only set during login, and at the login page itself, we already warn about cookies, in addition to the Privacy documentation
327
- Cookie law:
332
- Cookie law:
328
	Download CookieConsent code into vendor folder, do not hotlink it
333
	Download CookieConsent code into vendor folder, do not hotlink it
329
	we need to log all consents
334
	we need to log all consents
330
	do we need an explicit consent at the login form?
335
	do we need an explicit consent at the login form?
331
	do we need a consent for the cookie SSL_CHECK?
336
	do we need a consent for the cookie SSL_CHECK?
332
 
337
 
333
GUID Management
338
GUID Management
334
- Leaf nodes (GUIDs) should show/edit the Title in the CRUD, so you dont have to click the GUID to see the title
339
- Leaf nodes (GUIDs) should show/edit the Title in the CRUD, so you dont have to click the GUID to see the title
335
- weird bug: when i edit "guid:oidplus", then, after reload the treeview after the update, "guid:activedirectory" will be opened. somehow, the last opened node will be opened during the reload?!
340
- weird bug: when i edit "guid:oidplus", then, after reload the treeview after the update, "guid:activedirectory" will be opened. somehow, the last opened node will be opened during the reload?!