News: 1628525359

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Elastic amends Elasticsearch Python client so it won't work with forks then blocks comments

(2021/08/09)


Elastic has modified the official Python client for its Elasticsearch database not to work with forked versions, and closed the GitHub issue to comments.

Elasticsearch is a database manager and analytics engine, often used for log analytics. The [1]elasticsearch-py client has over 202,000 downloads and is described as the "official low-level client for Elasticsearch. Its goal is to provide common ground for all Elasticsearch-related code in Python; because of this it tries to be opinion-free and very extendable."

It is also used as a library by Elasticsearch DSL, a high-level library for running Elasticsearch queries.

[2]

Elasticsearch was an open-source product, but in January [3]changed its licensing in response to what the company saw as unfair usage by public cloud platforms, AWS in particular. AWS forked Elasticsearch, before the licence change, to create the Open Distro for Elasticsearch, which later evolved into [4]OpenSearch , which had its 1.0 release last month. Casualties of this corporate battle include open-source developers who contributed to Elasticsearch but now feel let down.

[5]

[6]

Developers have now picked up on a [7]quiet change to the elasticsearch-py source, which checks that the database is Elastic's product and not a fork. "If there is no X-Elastic-Product HTTP header in the response or if the X-Elastic-Product HTTP header value isn't Elasticsearch raise an error," is one of the changes noted.

"It's disappointing to see this :-( You're forcing us as bystanders in a battle to choose sides," [8]said Lars Holm Nielsen, product manager for an open-source project called [9]Invenio used for research data management.

[10]

"We develop an Open Source product that could likely easily work with both Elasticsearch or OpenSearch and then the users can choose for themselves if they want Elasticsearch or OpenSearch… This and other behaviours from Elastic really does not give me any confidence in Elastic and what you might do in the future. And don't blame it all on Amazon – you've already changed the server license, you didn't have to make this move."

[11]OpenSearch, the AWS-sponsored Elasticsearch fork, reaches 1.0 milestone

[12]Open-source developers under corporate pressure to adopt less-permissive licenses, Percona CEO says

[13]You know what? Fork this: AWS renames its take on Elasticsearch to OpenSearch following trademark fight

[14]Ruby off the Rails: Code library yanked over license blunder, sparks chaos for half a million projects

Philip Krauss, senior engineering manager at Elastic, [15]responded : "Amazon OpenSearch is a different product. And while there is some shared history, there are already many differences that cause real confusion and issues."

A further comment on the issue was deleted and the thread has now been locked.

The same thing has happened with the [16].NET Connector for Elasticsearch, leading to error messages like "The client noticed that the server is not a supported distribution of Elasticsearch." When users complained, Elastic's Steve Gordon, senior software engineer, [17]said that "the recommendation is to upgrade to the latest default distribution of Elasticsearch, which is free to use under Elastic License v2… we have labelled this as an enhancement since it affects only unsupported client and server combinations. In supported configurations, the change is not breaking. The intent here is to make this incompatibility explicit by failing fast to avoid consumers incorrectly assuming they are running in a supported configuration which is not tested and may not function as expected."

Another change is that the Java client for Elasticsearch has been switched to the Elastic License.

[18]

Over in the OpenSearch community, this topic has [19]caused some anxiety . "What should opensearch do about all the connectors and bindings for the different programming languages currently available? A lot of them are already integrating anti-competitive measures as it has been reported," said one user.

The licensing is a different matter than the product check. Elastic [20]said : "Our client libraries remain licensed under Apache 2.0, with the exception of our Java High Level Rest Client (Java HLRC). The Java HLRC has dependencies on the core of Elasticsearch, and as a result this client library will be licensed under the Elastic License. Over time, we will eliminate this dependency and move the Java HLRC to be licensed under Apache 2.0."

Licensing these clients under Apache 2.0 (as is the case with the Python and .NET clients) is not sufficient for use with OpenSearch if the code blocks connection, although it does mean that the clients can easily be forked and modified.

Elastic may be hoping that the momentum behind the official release, along with its own contributions, will be sufficient that the open-source alternative cannot keep up. ®

Get our [21]Tech Resources



[1] https://github.com/elastic/elasticsearch-py

[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YRGlnTmrCAp64oWaTBY@jwAAAAc&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[3] https://www.theregister.com/2021/01/18/elastics_doubling_down_on_open/

[4] https://www.theregister.com/2021/07/13/opensearch_10/

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YRGlnTmrCAp64oWaTBY@jwAAAAc&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YRGlnTmrCAp64oWaTBY@jwAAAAc&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[7] https://github.com/elastic/elasticsearch-py/pull/1623

[8] https://github.com/elastic/elasticsearch-py/pull/1623#issuecomment-879887914

[9] https://inveniosoftware.org/

[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YRGlnTmrCAp64oWaTBY@jwAAAAc&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[11] https://www.theregister.com/2021/07/13/opensearch_10/

[12] https://www.theregister.com/2021/05/13/open_source_proprietary/

[13] https://www.theregister.com/2021/04/13/aws_renames_elasticsearch_fork_opensearch/

[14] https://www.theregister.com/2021/03/25/ruby_rails_code/

[15] https://github.com/elastic/elasticsearch-py/pull/1623#issuecomment-880886736

[16] https://github.com/elastic/elasticsearch-net/pull/5728

[17] https://github.com/elastic/elasticsearch-net/pull/5728#issuecomment-895178556

[18] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YRGlnTmrCAp64oWaTBY@jwAAAAc&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[19] https://discuss.opendistrocommunity.dev/t/elastic-java-clients-are-no-longer-open-source/6470

[20] https://www.elastic.co/pricing/faq/licensing#im-using-elasticsearch-via-apis-how-does-this-change-affect-me

[21] https://whitepapers.theregister.com/



Ugh...

Geez Money

I deeply dislike what both sides have done here. I've always thought open source was a bit naive not to see these things coming. On the other hand it's still a dick move by a company Amazon's size if they're not doing their part to contrib back. And lastly while the license change makes sense the connect check just seems pointless. It's so easy to patch out, all it's doing is encouraging half maintained forks, using old versions and other security nightmares.

Re: Ugh...

doublelayer

How generous Amazon should be is a very subjective issue. They did contribute code fixes back, and they didn't keep any enhancements to themselves (that would have weakened their business because Amazon Elastic wouldn't be completely compatible with others' Elastic installs). I don't know if that's enough, but it isn't nothing and it is what most open source projects already work with. I would have liked it had Amazon also chosen to donate lots of money to the other maintainers. However, in this case, Elastic also benefits from the work of other maintainers by selling their commercial licenses for the software. They do not pay those external maintainers. It seems hypocritical to me to switch the license on those maintainers for optional generosity which they too choose not to do.

Re: Ugh...

HildyJ

Also Elasticsearch benefits because AWS supports it.

Plus, the phrase 'blocks comments' is never ever good.

Changing the licenses and hiding from the debate makes people wonder what is next.

Re: Ugh...

heyrick

" I've always thought open source was a bit naive not to see these things coming. "

Indeed. Most of human progress through the ages has been people walking on the backs of others. If you are involved in open source, it should be because you enjoy it, want geek cred, or have an employer that pays you to do it. If you're going to get stressed and start changing the terms of use, it's not really open source any more is it? It's "available but with restrictions", and adding checks into the code itself (more restrictions that as Geez noted, could be patched around, which would be an incentive not to update), we all know how that story usually ends up.

If you want to program in C, program in C. It's a nice language. I
use it occasionally... :-)
-- Larry Wall in <7577@jpl-devvax.JPL.NASA.GOV>