Permission to add GoogleDrive to WorkplaceSearch

@maryna.cherniavska
Thank you for your comments.

All, yes.
As for 5., technically, it specifies ENT_SEARCH_DEFAULT_PASSWORD. (To make the password clear)

$ ENT_SEARCH_DEFAULT_PASSWORD=[REDACTED] bin/enterprise-search

But previously you provided this:

Which looks like it's an IP address and not a hostname?

Oh. I'm sorry. I made a mistake.

As mentioned above, I had specified the IP address and port.
I changed this to the server name and rebooted.

#ent_search.external_url: http://XXX.XXX.XXX.XXX:3002 # <- remove
ent_search.external_url: http://MY_SERVER                     # <- add

However, there are two problems in this case.

One is that my NGINX redirects the given URL to the following, which causes the page to be NotFound.
https://MY_SERVER/workplacesearch/ -> https://MY_SERVER/login
I am expecting it to go to https://MY_SERVER/workplacesearch/login.

Second, though, the page accessed by specifying https://MY_SERVER/workplacesearch/login shows EnterpriseSearch.
However, the login process cannot be executed because the root directory is configured incorrectly.

I think we're getting close.

If you still have:

Then I believe you need:

ent_search.external_url: http://MY_SERVER/workplacesearch

ent_search.external_url needs to be set to the URL that is public-facing. This same URL needs to be the prefix to your redirect-URI for google, as well.

Thank you for your comment.

ent_search.external_url: http://MY_SERVER/workplacesearch

I have tried this before and get the following error. (This was posted on June 6)

$ ENT_SEARCH_DEFAULT_PASSWORD=passwordexample bin/enterprise-search
Found java executable in PATH
Java version detected: 1.8.0_282 (major version: 8)
Enterprise Search is starting...

--------------------------------------------------------------------------------

Invalid config file (/usr/share/enterprise-search/config/enterprise-search.yml):
The setting '#/ent_search/external_url' cannot have a path: 'https://MY_SERVER/workplacesearch'

--------------------------------------------------------------------------------

ross.bell pointed this out to me.

That setting can't contain a url path. It needs to be just https://MY_SERVER. It can also include a port.

As Ross said above:

So, currently I see this.

  1. The external_url setting is supposed to contain no path parameters (but it can contain the port).
  2. nginx makes a redirect that goes to https://MY_SERVER:3002/workplacesearch which opens the login page, but the login page then doesn't work as the root path isn't supposed to contain workplacesearch

@its-ogawa I am no nginx expert, but could you try also this nginx config?

location = / {
        proxy_pass   http://127.0.0.1:3002/;
}

and see what happens?

Thanks for the advice.

Indeed, with this combination you mentioned, the redirects match and I can access WorkplaceSearch by typing https://MY_SERVER into my browser.

$ vi /usr/share/enterprise-search/config/enterprise-search.yml
... snip ...
# ------------------------------- Elasticsearch -------------------------------
elasticsearch.host: https://MY_SERVER
... snip ...
# cat /etc/nginx/conf.d/ssl.conf
server {
... snip ...
    location / {
        proxy_pass   http://127.0.0.1:3002/;
    }
... snip ...
}

Why can't the external_url include the path?
That seems to be a bit of a strict rule.

I can't say for sure as I am pretty new on the team. But is the Google Drive connector now working for you? Is the problem resolved?

Thank you for contacting us.
With this setting, the first error I told you about when connecting no longer occurs.

Thank you very much.

However, when I look at the Source overview in WorkplaceSearch, it shows "No content yet".
Is there any other setting I need to do?

I'm sorry. I found the cause.

If I hover the cursor over Error in STATUS of Recent activity, I will see the following message.

Error after less than 20 seconds
Updated 0 items Failure caused by: Google::Apis::ClientError:accessNotConfigured: Access Not Configured. Drive API has not been used in project 662020117380 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/drive.googleapis.com/overview?project=662020117380 then retry. If youenabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

I had to go to the given URL and select "Enable API" from the GoogleCloudPlatform screen.

The STATUS is now Working and the number of documents it recognizes is increased.

@its-ogawa well done! Please come back if you have more questions.