(Migrated) Plug-ins in 2.1

(This message has been automatically imported from the retired mailing list)

Hello,

an idea for 2.1 is to have connection plug-ins.

That would be pieces of information describing details of a given
connection type out of which everything would be automatically generated …

  • GUI screens
  • self.plugin.name.invoke calls
  • Admin API services

… everything that is needed.

Sort of like here in a hypothetical INI file:

[core]
name=my.connection.type
name_pretty=My Connection Type
stateless=True
sync=False
connection_class=mymodule.connection.Connection
add_to_pool_method=myplugin.connection_type.add_to_pool

[gui]
name=str
host=str
port=int
path=str

That files could be provided on both command line and there could be a
repository of connections on zato.io for everyone to contribute new
connection types to.

Them we’d have either of these - the first one installs from file, the
other one from a repo:

$ zato plugin install /path/to/conn.ini
$ zato plugin install my.connection.type

Implementation-wise a real lot in that direction was delivered in 2.0.
Although it’s not directly visible to user code there are mechanisms
allowing for Zato’s own internal services to be extremely simple
outwardly, such as:

https://github.com/zatosource/zato/blob/master/code/zato-server/src/zato/server/service/internal/search/es.py

Naturally, there is quite a lot of code needed to ensure that the
complexity is at the level above and the idea with plug-ins is to take
it a step further so that everyone can create their own connections.

Question is, what would you like to have as a plug-in if it were
possible right now? I believe it’s always best to be able to work with
actual user requirements and expectations hence I’m very eager to hear
your opinion.

Can you suggest and recommend anything you’d particularly like to use?

thanks a lot,