I remembered one last deprecation we wanted in 3.0: security tightening, which included the deprecation of admin party.

Jan can you find the ticket on this? I don't think it's the full #1504. Just new defaults, and we'll need to think thru what happens when starting up a node that has no [admins]. Do we create one and log its password to the logfile? What if logging is disabled / goes nowhere? Or do we simply refuse to start until an admin is created? What about crypting and salting the password ahead of time - do we introduce a small cli tool to generate passwords like apache/httpd does? Many questions.

-Joan


On 2019-09-04 5:37 p.m., Joan Touzet wrote:
Hey Adam,

When it comes to deprecating and/or removing functionality, I feel like I don’t 
know exactly where we stand today. We have occasionally described some of the 
CouchApp functionality as already being deprecated, but I’m having trouble 
finding any official record of that in our documentation.
Thanks for re-opening the deprecation discussion. I've reviewed [1] and
provide the following summary tables (Markdown format).

**NOTE**: This is /not/ the vote for deprecation, nor a formal
announcement of such. This is a starting point for discussion. A vote
still needs to happen for this to move forward. Anything already
deprecated in 2.0 can be removed in 3.0 without a formal vote, but it'd
be nice if it got mentioned on the dev@ list before the PR lands on
master, please.

As I'm going to be travelling for most of the rest of September, I'd
prefer if someone else (like Adam or Deni) can help drive this discussion.

Once there is consensus from the community on these lists, we should
close #1534 and split it into 3 new tickets based on the tables below
(excepting the features already removed in 2.x).

I guess let’s start with: does anyone believe we are in a position to be 
eliminating previously-deprecated functionality in 3.0?

Yes, for the items in the 2nd table below, absolutely.

-Joan "turning the tables" Touzet


--------


# Recently removed features in 2.x

**Feature/Endpoint**                | **Links**
------------------------------------|------------
update_notifications                | [10]
ini-file based query servers        | [11]
ini-file based HTTP global handlers | [11]
OS daemons                          | [11],[12]
vhost redirects/global handlers     | [11],[12]
couch_httpd_proxy                   | [11],[12]

*NOTE*: Some of these still have lingering bits in the documentation
         that need a final cleanup pass before 3.0 should be released.

--------

# Already deprecated items, to be removed in 3.0

**Feature/Endpoint**                | **Links**
------------------------------------|------------
some duplicate dbinfo size fields   | [2],[3]
delayed_commits                     | [4]
port 5986                           | [5],[6]
`/{db}/_external/*`                 | [7],[8]
view-based changes (code remnants)  | [17],[18],[19],[20]

--------

# Proposed deprecations for 3.0, not rebuilt/removed in 4.0

    **Feature/Endpoint**   |    **Replaced by**   | **Links**
--------------------------|----------------------|-----------
`/{db}/{ddoc}/_show/*`    | App server/rev proxy | †
`/{db}/{ddoc}/_list/*`    | App server/rev proxy | †
virtual hosts [24]        | haproxy, multitenant | [25]
`/{db}/{ddoc}/_rewrite/*` | App server/rev proxy | [26]

†: getRow() makes embedding a new, efficient JS engine impossible since
getRow() does not give up thread execution control; an entirely new
approach would need to be constructed, breaking backward compatibility
at the very least. (There are additional challenges.)

--------

# Likely will remain unchanged through 4.0

    **Feature/Endpoint**          |    **Improved by**
---------------------------------|----------------------
VDU (validatefun()) [13]         | [14],[15]
update handlers (updatefun) [16] | [14],[15]
JS engine [21]                   | [22],[23]
system DB special handling       | [27]

*NOTE*: The last table may grow as limitations imposed by FDB are better
         understood.

--------

# References

[1]: https://github.com/apache/couchdb/issues/1534
[2]:
https://docs.couchdb.org/en/stable/api/database/common.html?highlight=disk-size#get--db
[3]: https://github.com/apache/couchdb/pull/2163
[4]:
https://github.com/apache/couchdb/blob/103a0624f309ea0d796176a55eb5faea68f26047/test/javascript/tests/delayed_commits.js#L16
[5]: https://github.com/apache/couchdb/issues/1523
[6]: https://github.com/apache/couchdb/pull/2092
[7]: https://github.com/apache/couchdb/pull/1330
[8]: https://docs.couchdb.org/en/stable/whatsnew/2.2.html
[10]: https://github.com/apache/couchdb/pull/1476
[11]: https://docs.couchdb.org/en/stable/whatsnew/2.3.html
[12]: https://github.com/apache/couchdb/pull/1602
[13]: https://docs.couchdb.org/en/stable/ddocs/ddocs.html#vdufun
[14]: https://github.com/apache/couchdb/issues/1554
[15]: https://github.com/apache/couchdb/pull/1898
[16]: https://docs.couchdb.org/en/stable/ddocs/ddocs.html#update-functions
[17]: https://github.com/apache/couchdb/issues/592
[18]: https://github.com/apache/couchdb/issues/831
[19]:
https://lists.apache.org/thread.html/516793df0c1913c045441d0ff78339f307e2aff517d9223da44edd9e@%3Cdev.couchdb.apache.org%3E
[20]:
http://docs.couchdb.org/en/stable/api/database/changes.html?highlight=selector#selector
[21]: https://github.com/apache/couchdb/issues/1513
[22]: https://github.com/apache/couchdb/issues/1875
[23]: https://github.com/apache/couchdb/issues/1884
[24]: https://docs.couchdb.org/en/stable/config/http.html#virtual-hosts
[25]: https://github.com/apache/couchdb/issues/1539
[26]:
https://docs.couchdb.org/en/stable/api/ddoc/rewrites.html#api-ddoc-rewrite
[27]: https://github.com/apache/couchdb/issues/1534

Reply via email to