Commit Graph

3131 Commits

Author SHA1 Message Date
Matthias Hanel
a4c069884f Tie account in system event subject to data and clean up subject names
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-09-16 13:26:06 -04:00
Ivan Kozlovic
53ff94c750 Merge pull request #1595 from nats-io/speedup_some_dirstore_tests
Fix dirstore code and speed up some tests
2020-09-11 10:16:27 -06:00
Ivan Kozlovic
bd920c42bc Fix dirstore code and speed up some tests
When using Unix() time, since it is number of seconds, it is better
to round up the time before adding a ttl. Trying to shorten some
of the tests showed that in some cases a file was removed too early.
This was because the computed expiration with ttl fell in the same
second, so the file was removed prematurely.

So anywhere where we used to do: time.Now().Addd(ttl).Unix(), I
changed to time.Now().Round(time.Second).Add(ttl).Unix().

I was able to reduce the time of TestTTL from 21 seconds down to
less than 5. TestExpiration was also shorten.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-09-10 17:47:33 -06:00
Ivan Kozlovic
540160116e Merge pull request #1587 from nats-io/js-jwt
Updating jetstream account settings from jwt
2020-09-10 12:52:25 -06:00
Waldemar Quevedo
9f41002f2e Merge pull request #1593 from nats-io/go1.15-fixes
Fixes for Go1.15
2020-09-09 12:15:01 -07:00
Waldemar Quevedo
f0c144203b Add Go 1.15 version to CI
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2020-09-09 07:21:32 -07:00
Waldemar Quevedo
de98a04aa2 Update config check tests
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2020-09-09 04:46:52 -07:00
Waldemar Quevedo
26f4971827 Fix all certs for Go 1.15 SAN and CN changes
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2020-09-09 04:43:23 -07:00
Ivan Kozlovic
5cd11bf77d Merge pull request #1590 from nats-io/lookup_host_for_routes
[ADDED] Support for route hostname resolution
2020-09-08 14:55:05 -06:00
Ivan Kozlovic
8fb4d2a0b1 Merge pull request #1589 from nats-io/offer-targz
Offer .tar.gz releases additionally
2020-09-08 14:34:36 -06:00
Ivan Kozlovic
2ad2bed170 [ADDED] Support for route hostname resolution
We previously simply called DialTimeout() on a route's url when
soliciting. If it resolved to the IP of the host, it would create
a route to self, which server detects, but then would not try again
with other IPs that would have allowed to form a cluster with
other servers running on the other IPs.

This PR keeps track of local IPs + cluster port and exclude them
from the list of IPs returned by LookupHost API. This even prevent
solicitation of routes to self. Only non-local IPs will be tried.

Resolves #1586

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-09-08 13:40:17 -06:00
Jaime Piña
0223f381c9 Offer .tar.gz releases
The zip/unzip commands aren't installed by default on most Linux
distros. However, tar is almost always installed. Additionally, users
may get confused when they try to uncompress an archive with
gzip/gunzip, only for it to fail because gunzip is for .gz files, not
.zip.

This change makes it a little easier to grab a copy of a nats-server
release binary.
2020-09-08 12:05:12 -07:00
Alberto Ricart
92e00f2a40 Header ADR clarifications (#1528)
* clarifications on the ADR. Go is non-standard, and it's formatting
rules, create formatting dependencies that are not part of the spec.
Also added simplified guidance of allowed characters to help those
having to implement it.

* clarified that http.Header in go internally uses textproto.MIMEHeader.

[ci skip]
2020-09-05 19:06:55 -05:00
Matthias Hanel
d6ab6799b4 Fixing unit test
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-09-04 17:14:51 -04:00
Matthias Hanel
a3c5fd4575 Updating jetstream account settings from jwt
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-09-04 16:07:38 -04:00
Waldemar Quevedo
9c210284a4 Merge pull request #1584 from wallyqs/leaf-remote-conf-check
Add more config checks for leafnode remotes
2020-09-04 08:35:19 -07:00
Waldemar Quevedo
3161cb1693 Add more config checks for leafnode remotes
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2020-09-04 00:34:40 -07:00
Matthias Hanel
3954030abf [FIXED] Error when importing an account results in an error, retry later (#1578)
* [FIXED] Error when importing an account results in an error

When the account that could not be imported is updated, update the
original account as well.

Fixes #1582

Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-09-03 13:57:06 -06:00
Derek Collison
959b35a775 Merge pull request #1581 from nats-io/js_interest_only
JetStream fixes for InterestPolicy retention
2020-09-03 12:19:40 -07:00
Derek Collison
bcbf28fb3a Make sure to clear messages from stream when consumer deleted
Signed-off-by: Derek Collison <derek@nats.io>
2020-09-03 11:41:14 -07:00
Ivan Kozlovic
da546c2dce Merge pull request #1577 from nats-io/dn-match
[FIXED] Better support for distinguishedNameMatch in TLS Auth
2020-09-03 09:57:28 -06:00
Derek Collison
2ba9c97f3d Fix test flapper
Signed-off-by: Derek Collison <derek@nats.io>
2020-09-03 07:54:07 -07:00
Waldemar Quevedo
57f2c74d62 Better support for distinguishedNameMatch in TLS Auth
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2020-09-03 00:52:50 -07:00
Derek Collison
3faa2e7637 Fix for #1580
Signed-off-by: Derek Collison <derek@nats.io>
2020-09-02 17:18:28 -07:00
Derek Collison
cdbea93a87 Interest based retention should not store if no consumers present.
Fix for https://github.com/nats-io/jetstream/issues/314

Signed-off-by: Derek Collison <derek@nats.io>
2020-09-02 16:04:38 -07:00
Derek Collison
d794616945 Merge pull request #1576 from nats-io/timezone
Convert current time into time for locale before usage
2020-08-31 17:59:47 -05:00
Matthias Hanel
40e4659f25 Convert current time into time for locale before usage
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-31 18:46:26 -04:00
Ivan Kozlovic
5671e76130 Merge pull request #1575 from nats-io/locale
Support locale for times in user jwt
2020-08-28 14:26:18 -06:00
Matthias Hanel
b02b6215b6 Support locale for times in user jwt
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-28 16:01:00 -04:00
Ivan Kozlovic
c76dd8f673 Merge pull request #1573 from nats-io/noopjwt
Discard client provided jwt when not in operator mode
2020-08-28 13:59:35 -06:00
Matthias Hanel
cc14e54179 Discard client provided jwt when not in operator mode
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-28 12:31:02 -04:00
Ivan Kozlovic
c10779d2e7 Merge pull request #1574 from nats-io/updatejwt
Update JWT and incorporate change of cidr ranges from string to array
2020-08-28 09:07:13 -06:00
Matthias Hanel
431560b004 Update JWT and incorporate change of cidr ranges from string to array
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-27 23:11:54 -04:00
Ivan Kozlovic
6d06e393ee Merge pull request #1570 from nats-io/limits
Adding user jwt payload and subscriber limits
2020-08-25 09:59:51 -06:00
Matthias Hanel
846b2b5ce0 Fix flapping test and limit channel recv when there is an error
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-25 00:36:14 -04:00
Matthias Hanel
9d1526cbb8 Adding user jwt payload and subscriber limits
Addresses part of #1552

Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-24 18:16:25 -04:00
Ivan Kozlovic
8c60b10d5f Merge pull request #1553 from bfoxstudio/feature/monitoring_proxy
fix absolute url in monitoring menu
2020-08-24 13:31:27 -06:00
Ivan Kozlovic
fc35bdded8 Merge pull request #1568 from nats-io/updatejwt
Update jwtv2 and fix test that embedded jwtv2 operators
2020-08-24 13:19:00 -06:00
Matthias Hanel
6bfa25376d Removing blank line from imports 2020-08-24 11:49:50 -04:00
Matthias Hanel
32615b4c71 Update jwtv2 and fix test that embedded jwtv2 operators
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-24 11:49:50 -04:00
Ivan Kozlovic
12ecadd9a1 Merge pull request #1554 from nats-io/trace
Emit latency traces when sampling is set to headers
2020-08-24 09:11:14 -06:00
Matthias Hanel
e1350a05f3 Emit latency traces when sampling is set to headers
Latency reports will include the header(s) responsible for the trace
Updated ADR to have it reflect implementation

Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-21 20:01:11 -04:00
Matthias Hanel
9bad6725aa Speed up test and make it more robust (#1569)
* Speed up test and make it more robust

Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-21 17:41:44 -06:00
Matthias Hanel
6c61464915 [ADDED] Checks for CIDR blocks and connect time ranges specified in jwt (#1567)
because times stored are hh:mm:ss it is possible to end up with start > end where end is actually the next day.
jwt.go line 189

Also, ranges are based on the servers location, not the clients.

Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-20 13:28:16 -06:00
Ivan Kozlovic
7cc0113076 Merge pull request #1565 from nats-io/fix_panic_on_conn_close_early
[FIXED] Possible panic for TLS connections that are aborted early
2020-08-18 16:50:45 -06:00
Ivan Kozlovic
92970316ee [FIXED] Possible panic for TLS connections that are aborted early
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-08-18 16:38:35 -06:00
Matthias Hanel
48c87c1447 Nats based resolver & avoiding nats account server in smaller deployments (#1550)
* Adding nats based resolver and bootstrap system account

These resolver operate on an exclusive  directory
Two types:
full: managing all jwt in the directory
    Will synchronize with other full resolver
    nats-account-server will also run such a resolver
cache: lru cache managing only a subset of all jwt in the directory
    Will lookup jwt from full resolver
    Can overwrite expiration with a ttl for the file

Both:
    track expiration of jwt and clean up
    Support reload
    Notify the server of changed jwt

Bootstrapping system account allows users signed with the system account
jwt to connect, without the server knowing the jwt.
This allows uploading jwt (including system account) using nats by
publishing to $SYS.ACCOUNT.<name>.CLAIMS.UPDATE
Sending a request, server will respond with the result of the operation.

Receive all jwt stored in one server by sending a
request to $SYS.ACCOUNT.CLAIMS.PACK
One server will respond with a message per stored jwt.
The end of the responses is indicated by an empty message.

The content of dirstore.go and dirstore_test.go was moved from
nats-account-server

Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-18 13:58:41 -06:00
Derek Collison
fe549a1979 Merge pull request #1564 from nats-io/js_state_fix
Fix for https://github.com/nats-io/jetstream/issues/297
2020-08-18 11:24:07 -07:00
Ivan Kozlovic
74bdf38538 Merge pull request #1555 from nats-io/event_structs
Create dedicated options struct for system events that invoke monitoring
2020-08-17 12:06:16 -06:00
Matthias Hanel
2381d734bb Incorporating suggestions and fixes
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-08-17 13:44:22 -04:00