Lost track of this convo for a while... but basically like what I read. I
like that we've acknowledged the positive role of the UI, and I also very
much like the use of http verbs for v2. The primary concern for me is that
I can do most things via a browser connection to solr, so a kibana-like ui
or even something simpler enhancing what we have on the Documents page
could be sufficient. I find less use for sending folks URLs, but that point
makes good sense too. Couple thoughts:

There is something of a risk to have a server that accepts non safe get
requests. All these requests are contrary to the HTTP specification (
https://www.rfc-editor.org/rfc/rfc9110.html#section-9.2.1). A crawler or
browser accelerator that might prefetch pages could do very bad things if
unleashed on an intranet where there was (for example) a wiki with
instructions on how to maintain their deployed solr, despite only issuing
get requests. So I also think it is a good idea if unsafe gets can be
turned off for folks who wish to guard against this (say on prod machines).

Another thought I would like to float is that the current paradigm is that
every api (v1, v2, query, json query, export, streaming, etc) is piped
through our single servlet filter. If we are going to make serious changes
to v2 (or do a v3) we might endeavor to put the new version into a servlet
(which will have dedicated methods for verbs anyway). My changes to move
CoreContainer into a servlet listener should make it possible to get a
reference to CC in the servlet's init() method. There is probably a bunch
of code that needs to be extracted to a reusable location so that v2 and v1
can continue to share appropriate code. But this would be a step towards
simplifying the architecture so that functionality is organized into
servlet classes of related logic and data rather than if-blocks and methods
sharing all state in a few tightly coupled classes.

It would be cool if (as one possible example) someday one had the option to
build an index and then run a solr instance with the admin/update entirely
disabled (i.e. servlets commented out of the web.xml and not even loaded).
This would provide a read-only server without needing authentication.

-Gus


On Wed, Jul 20, 2022 at 6:59 PM Jan Høydahl <jan....@cominvent.com> wrote:

> I'm still on holiday, but just chiming in to say I like and support the
> direction here. I'm impressed by the structured and holistic approach on
> this.
> Also agree it is far better to have a consistent "new" v2 api in 9.x or
> 10.0 at the expense of back-compat for existing v2 users -- maintaining
> three versions is not going to happen.
>
> BTW: OpenAPI is the new name for what we earlier referred to as the
> Swagger specification. The name Swagger is still the brand name for some
> OpenAPI tooling - see
> https://swagger.io/blog/api-strategy/difference-between-swagger-and-openapi/
>
> Jan
>
> > 15. jul. 2022 kl. 05:17 skrev David Smiley <dsmi...@apache.org>:
> >
> > On Thu, Jul 14, 2022 at 4:31 PM Jason Gerlowski <gerlowsk...@gmail.com>
> > wrote:
> >
> >>> I think it would be best to tackle one limited area first so we can see
> >> it in practice both at the surface and implementation.
> >>
> >> I think that makes sense, assuming that by "tackling" you mean
> >> updating the API path/verb/etc and moving the "real" logic over to the
> >> v2 class?  I'd rather we not take a "limited area" approach to getting
> >> consensus around the API endpoint design itself, as IMO that'd produce
> >> a less cohesive result.  I don't think that was what you meant, but
> >> just double-checking.
> >>
> >
> > Sure -- API first.  There may be some implementation realities that cause
> > us to reconsider choices but we can take that as it happens.
> >
> > ~ David
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
> For additional commands, e-mail: dev-h...@solr.apache.org
>
>

-- 
http://www.needhamsoftware.com (work)
http://www.the111shift.com (play)

Reply via email to